M. *_*ley 27 powershell datetime utc
我正在尝试DateTime
在PowerShell中创建具有特定UTC时间戳的对象.最简单的方法是什么?
我试过了:
Get-Date
-Format (Get-Culture).DateTimeFormat.UniversalSortableDateTimePattern
-Date "1970-01-01 00:00:00Z"
Run Code Online (Sandbox Code Playgroud)
但我得到这个输出:
1969-12-31 19:00:00Z
Run Code Online (Sandbox Code Playgroud)
这是几个小时的休息时间.我的理解失误在哪里?
M. *_*ley 33
该DateTime
对象本身正在用正确的UTC时间创建.但是,当PowerShell将其打印出来时,它会将其转换为我当地的文化和时区,从而产生差异.
证明:
$UtcTime = Get-Date -Date "1970-01-01 00:00:00Z"
$UtcTime.ToUniversalTime()
Run Code Online (Sandbox Code Playgroud)
小智 16
(get-date).ToUniversalTime().ToString("yyyyMMddTHHmmssfffffffZ")
Run Code Online (Sandbox Code Playgroud)
小智 8
$time = [DateTime]::UtcNow | get-date -Format "yyyy-MM-ddTHH:mm:ssZ"
Run Code Online (Sandbox Code Playgroud)
这似乎也有效
$utctime = New-Object DateTime 1970, 1, 1, 0, 0, 0, ([DateTimeKind]::Utc)
Run Code Online (Sandbox Code Playgroud)
如果你打印出来$utctime
,那么你得到:
1. januar 1970 00:00:00
Run Code Online (Sandbox Code Playgroud)
此外,$utctime.Kind
正确设置为Utc
.
小智 5
您可以使用指定种类方法:
PS C:\IT\s3> $时间戳
2018 年 7 月 18 日星期三晚上 7:57:14
PS C:\IT\s3> $timestamp.kind
未指定
PS C:\IT\s3> $utctimestamp = [DateTime]::SpecifyKind($timestamp,[DateTimeKind]::Utc)
PS C:\IT\s3> $utctimestamp
2018 年 7 月 18 日星期三晚上 7:57:14
PS C:\IT\s3> $utctimestamp.kind
世界标准时间