在powershell中转换时间戳

时间:2017-01-26 02:59:42

标签: powershell datetime

我从API响应中得到以下时间戳如何将其转换为电源外壳中的人类可读文本,我在下面尝试但是它会抛出错误。

PS C:\Users\foobar\ddd> [datetime]::ParseExact('20100804T104413+0100','
yyyyMMdd'T'HHmmsszzz',[System.Globalization.CultureInfo]::InvariantCulture)
At line:1 char:57
+ [datetime]::ParseExact('20100804T104413+0100','yyyyMMdd'T'HHmmsszzz', ...
+                                                         ~
Missing ')' in method call.
At line:1 char:57
+ ... me]::ParseExact('20100804T104413+0100','yyyyMMdd'T'HHmmsszzz',[System ...
+                                                      ~~~~~~~~~~~~
Unexpected token 'T'HHmmsszzz'' in expression or statement.
At line:1 char:69
+ ... e]::ParseExact('20100804T104413+0100','yyyyMMdd'T'HHmmsszzz',[System. ...
+                                                                 ~
Missing argument in parameter list.
At line:1 char:122
+ ... dd'T'HHmmsszzz',[System.Globalization.CultureInfo]::InvariantCulture)
+                                                                         ~
Unexpected token ')' in expression or statement.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : MissingEndParenthesisInMethodCall
  

20170125T153341-050020170125T153344-0500

1 个答案:

答案 0 :(得分:2)

您唯一的问题似乎是代码中T的错误引用(缺少)引用;删除它似乎工作正常:

[datetime]::ParseExact('20100804T104413+0100','yyyyMMddTHHmmsszzz', $null)

此外,由于您提供了一个格式字符串,其中所有字符都是单独和数字指定的,因此您无需指定文化(传递$null,默认为当前文化,将做)。