当前位置: 首页 > 知识库问答 >
问题:

如何检查DateTime值是否不为空或空?

吕飞翼
2023-03-14

我想检查DateTime字段是否不是空的\null字符串。如果datetime字段不为空,则我将执行一些操作。

[DateTime]$expdate = Read-Host "Expiration Date? MM/DD/YYYY"
$newexpdate = $expdate.AddDays(1)
if (!([DateTime]$expdate -eq "")) {
    Write-Host -ForegroundColor Green $($newexpdate) "Date Time entered"
}

这是我的错误消息

Cannot convert value "" to type "System.DateTime". Error: "String was not
recognized as a valid DateTime."
At line:1 char:2
+     [DateTime]$expdate = Read-Host "Expiration Date? MM/DD/YYYY"
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : MetadataError: (:) [], ArgumentTransformationMetadataException
    + FullyQualifiedErrorId : RuntimeException`

我能做些什么来检查一个字段是否不是字符串,而是DateTime对象?

共有3个答案

南门星河
2023-03-14

您的逻辑没有多大意义,但我认为您正在尝试这样做(如下所示)。为了直接解决您的最后一个问题,您可以使用-is-isNot运算符来测试对象的类型,该运算符将返回$True\$False,具体取决于匹配项。运算符的另一边可以是字符串或类型加速器,即[DateTime]'10/10/2010'-是'DateTime'[DateTime]'10/10/2010'-是[DateTime]都计算为$True

Do
{
    $ExpDate = Read-Host -Prompt 'Expiration date? MM/DD/YYYY'
} Until ($ExpDate -match '\d{1,2}\/\d{1,2}\/\d{2,4}')

$NewExpDate = ([DateTime]$ExpDate).AddDays(1)

If ($ExpDate)
{
    Write-Host "$NewExpDate Date Time entered." -ForegroundColor 'Green'
}
尹兴生
2023-03-14

没有空的[DateTime]值,它可以是$null或DateTime值。

读取主机返回字符串类型。您试图做的是将字符串值分配给[DateTime]类型,这将导致错误。

您可以像这样重写代码:

$expdate = Read-Host "Expiration Date? MM/DD/YYYY"
if (![string]::IsNullOrEmpty($expdate))) {
   #add logic to check $expdate is valid datetime
   #then you can do this
   $newexpdate = ([DateTime]$expdate).AddDays(1)
   Write-Host -ForegroundColor Green $($newexpdate) "Date Time entered"
}
羊毅庵
2023-03-14

当您可以向函数或脚本声明强制DateTime-type参数时,为什么要提示用户输入?如果缺少参数,PowerShell将提示用户输入日期和时间,用户可以在运行时输入。(如果您使用Read-Host,则无法自动化。)

 类似资料:
  • 问题内容: 我试图弄清楚如何检查一个字段是否为空或为空。我有这个 我需要添加额外的支票,例如 任何想法如何做到这一点? 问题答案: 无论使用 要么 如果只想检查而不是空字符串,则也可以使用或。但这不适用于空字符串。

  • 我有一个名为< code>Person的对象。 它有几个属性; 我设置了一个person对象,比如< code>Person p = new Person(1,“Joe”);。 1.) 我需要检查对象是否为空;以下表达式是否正确; 2.)我需要知道ID是否包含Int。 但是,java不允许这样做。我该怎么办?

  • 问题内容: 如何检查是否为空? 问题答案: 您自己说过的,请检查它是: 看,PHP非常简单。您可以简单地写下您的想法;) 这种方法很安全。如果未设置(可能,但可能),则可能会给您提供未定义的变量E_NOTICE 。

  • 在下面的代码中,我需要检查版本字符串是否为空,然后将其值附加到请求变量。 如何检查不在if条件下?

  • 我需要在JPA查询中传递这个参数。 我如何才能实现这一点,而不是为IS NULL&IS NOT NULL创建2个单独的查询。

  • 问题内容: 如何检查大pandas是否为空?就我而言,如果终端为空,我想在终端打印一些消息。 问题答案: 您可以使用该属性检查其是否为空: 资料来源:pandas文件