Powershell最简单的方法来获取以UTC表示的当前时间

标签 powershell datetime time timezone utc

我已经查看了Creating a DateTime object with a specific UTC DateTime in PowerShell帖子,但它似乎无法直接回答我所问的问题:

在PowerShell(3.0)中,最直接的方法是返回表示“现在”为UTC的可排序字符串吗?

我期望正确的答案是:

Get-Date -Format (Get-Culture).DateTimeFormat.UniversalSortableDateTimePattern 

 OR

get-date -format u

但这种情况并非如此。

示例:DST期间,2016年9月1日在太平洋时区1300 hrs(下午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替换UTC:
[DateTime]::UtcNow.ToString('u').Replace('Z','UTC')

我假设您总是要使用UTC,因为从您的问题来看,这是什么样子。似乎没有format string可以仅获得3个字母的时区。

关于Powershell最简单的方法来获取以UTC表示的当前时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32340404/

相关文章:

iis - 使用powershell查找IIS版本

c# - 计算到下一个指定日期的剩余天数

c# - 服务器上的日期格式不同

powershell - 如何向 cmdlet 输出添加一列递增值?

powershell - 如何在Powershell中删除文件夹?

postgresql - 连接到 Postgresql 数据库并执行 SQL 命令时调用 Sqlcmd 失败

c# - 查找给定范围内的所有插槽

php - 限制给定秒数的 IP 访问

java - 两次按钮单击之间的时间 (Java)

C++:将 Unix 时间转换为非本地时区