Powershell最简单的方法来获取当前时间表示为UTC
Powershell simplest method to get current time expressed as UTC
我看过post Creating a DateTime object with a specific UTC DateTime in PowerShell,但它似乎没有直接回答我要问的问题:
PowerShell (3.0) 中最直接的方法是 return 表示 "now" 为 UTC 的可排序字符串?
我预计正确答案是:
Get-Date -Format (Get-Culture).DateTimeFormat.UniversalSortableDateTimePattern
OR
get-date -format u
但事实并非如此
示例:2016 年 9 月 1 日太平洋时区夏令时 1300 时(下午 1 点),我收到响应:
2016-09-0113:00:00Z(当地时间加"Z")
当我期待时:
2016-09-0120:00:00Z(正确UTC/GMT时间)
所以基本上,我的代码只是获取一个表示 "local" 时间的字符串并附加一个 "Z".
现在,我知道我可以通过操作来达到这一点,但我正在寻找到达这里的最小(最简单、最干净)的方法。
奖励积分(就好像它们存在一样):如何获得相同的、可排序的结果,但以 "UTC" and/or "GMT" 作为后缀显示。相同的最低要求。
大概是这样的:
[DateTime]::UtcNow.ToString('u')
相当于:
[DateTime]::UtcNow.ToString((Get-Culture).DateTimeFormat.UniversalSortableDateTimePattern)
对于奖金,我认为最直接的方法就是将Z
替换为UTC
:
[DateTime]::UtcNow.ToString('u').Replace('Z','UTC')
我假设你总是想要 UTC,因为从你的问题来看它看起来像这样。似乎没有 format string 来获取 3 个字母的时区。
我试过了,也是我想要的结果:
"[DateTime]::UtcNow.ToString('yyyyMMdd_HHmmss_UTC')"
它以 20180108_152407_UTC 格式显示时间
所以你基本上可以随心所欲地使用 date/time 格式
我看过post Creating a DateTime object with a specific UTC DateTime in PowerShell,但它似乎没有直接回答我要问的问题:
PowerShell (3.0) 中最直接的方法是 return 表示 "now" 为 UTC 的可排序字符串?
我预计正确答案是:
Get-Date -Format (Get-Culture).DateTimeFormat.UniversalSortableDateTimePattern
OR
get-date -format u
但事实并非如此
示例:2016 年 9 月 1 日太平洋时区夏令时 1300 时(下午 1 点),我收到响应:
2016-09-0113:00:00Z(当地时间加"Z")
当我期待时:
2016-09-0120:00:00Z(正确UTC/GMT时间)
所以基本上,我的代码只是获取一个表示 "local" 时间的字符串并附加一个 "Z".
现在,我知道我可以通过操作来达到这一点,但我正在寻找到达这里的最小(最简单、最干净)的方法。
奖励积分(就好像它们存在一样):如何获得相同的、可排序的结果,但以 "UTC" and/or "GMT" 作为后缀显示。相同的最低要求。
大概是这样的:
[DateTime]::UtcNow.ToString('u')
相当于:
[DateTime]::UtcNow.ToString((Get-Culture).DateTimeFormat.UniversalSortableDateTimePattern)
对于奖金,我认为最直接的方法就是将Z
替换为UTC
:
[DateTime]::UtcNow.ToString('u').Replace('Z','UTC')
我假设你总是想要 UTC,因为从你的问题来看它看起来像这样。似乎没有 format string 来获取 3 个字母的时区。
我试过了,也是我想要的结果:
"[DateTime]::UtcNow.ToString('yyyyMMdd_HHmmss_UTC')"
它以 20180108_152407_UTC 格式显示时间 所以你基本上可以随心所欲地使用 date/time 格式