我已查看该帖子在 PowerShell 中创建具有特定 UTC 日期时间的 DateTime 对象 https://stackoverflow.com/questions/10487011/creating-a-datetime-object-with-a-specific-utc-datetime-in-powershell,但它似乎并没有直接回答我所问的问题:
PowerShell (3.0) 中返回表示“now”为 UTC 的可排序字符串的最直接方法是什么?
我预计正确答案是:
Get-Date -Format (Get-Culture).DateTimeFormat.UniversalSortableDateTimePattern
OR
Get-Date -Format u
但这种情况并非如此。
示例:太平洋时区 2016 年 9 月 1 日 1300 点(下午 1 点)夏令时期间,我收到响应:
2016-09-01 13:00:00Z
(当地时间"Z"
附后)
当我期待的时候:
2016-09-01 20:00:00Z
(正确的 UTC/GMT 时间)
所以基本上,我的代码只是获取一个表示“本地”时间的字符串并附加一个"Z"
.
现在,我知道我可以通过操纵来达到这一点,但我正在寻找到达这里的最小(最简单、最干净)的方法。
奖励积分(就好像它们存在一样):如何获得相同的可排序结果,但以“UTC”和/或“GMT”作为后缀显示。相同的最低要求。
大概是这样的:
[DateTime]::UtcNow.ToString('u')
这相当于:
[DateTime]::UtcNow.ToString((Get-Culture).DateTimeFormat.UniversalSortableDateTimePattern)
对于奖金,我认为最直接的方法就是替换Z
with UTC
:
[DateTime]::UtcNow.ToString('u').Replace('Z','UTC')
我假设你总是想要 UTC,因为从你的问题来看,它看起来是这样的。似乎没有格式字符串 https://msdn.microsoft.com/en-us/library/system.globalization.datetimeformatinfo.aspx只获取 3 个字母的时区。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)