Powershell是什么时间格式

时间:2018-12-20 12:30:17

标签: powershell

<DatePicker label="Дата начала"
    minDate={moment().toDate()}
    maxDate={endDate}
    value={startDate}
    dateFormat="DD.MM.YYYY"
    onDateChange={this.onChangeStartDate}/>

powershell中的上述哪种时间格式? 我需要将相同的格式与Powershell中的今天时间进行比较。

2017-05-05 12:03:02 -0400 (Fri, 05 May 2017)  

2 个答案:

答案 0 :(得分:3)

由于这是follow-up question,因此您应该提及这一点。

要基于UTC转换包含日期时间和时区偏移量的字符串,
使用[datetime]::ParseExact()。您应该将RegEx从以前的“问答”更改为仅包含日期时间,而不在括号中添加多余的信息。

[datetime]::ParseExact("2017-05-05 12:03:02 -0400","yyyy-MM-dd HH:mm:ss zzzzz",$Null)

这将转换为本地时间(并正确包含该日期的DST aka夏令时)

此处的时区+1和DST有效的示例输出为:

 2017-05-05 18:03:02 +02:00

或者通过.ToString('U')和我的德语语言环境设置更通用:

Freitag, 5. Mai 2017 16:03:02

要获得与[datetime]::Now的差异,只需减去并从中选择一个属性

> [datetime]::Now - [datetime]::ParseExact("2017-05-05 12:03:02 -0400","yyyy-MM-dd HHH:mm:ss zzzzz",$Null)

Days              : 593
Hours             : 20
Minutes           : 15
Seconds           : 35
Milliseconds      : 615
Ticks             : 513081356156056
TotalDays         : 593,844162217657
TotalHours        : 14252,2598932238
TotalMinutes      : 855135,593593427
TotalSeconds      : 51308135,6156056
TotalMilliseconds : 51308135615,6056

答案 1 :(得分:2)

您可以使用DateTime格式字符串以及格式运算符(-f)或ToString()方法来构建或多或少构建自己喜欢的任何格式。例如:

(Get-Date).ToString("yyyy-MM-dd hh:mm:ss")

哪个给出这样的内容:

2018-12-20 12:50:53

如果您想走另一条路,可以这样做:

Get-Date "2017-05-05 12:03:02 -0400"

这会将您的字符串转换为实际的DateTime对象,该对象可以直接与任何其他DateTime比较。因此,例如,要检查目标日期是否在现在之前,请执行以下操作:

(Get-Date "2017-05-05 12:03:02 -0400") -lt (Get-Date)