powershell - Powershell 解析日期 ISO8601
问题描述
我有一个我认为是 ISO8601 格式的日期字符串(虽然我不是 100% 确定),例如
20200210T165905+0000
我想用powershell解析这个并尝试了以下
$Date = "20200210T165905+0000"
$DatePattern = "yyyyMMdd\THHmmss\+zzzz"
$DateTime = [DateTime]::ParseExact($Date, $DatePattern, $null)
但我收到以下错误
Exception calling "ParseExact" with "3" argument(s): "String was not recognized as a valid DateTime."
我究竟做错了什么?
解决方案
您拥有的 Dateformat 需要不同的模式,其中时区信息由K
.
+0000
表示日期为 UTC 时间(偏移量 0)。如果删除它,则日期字符串将被解析为 LOCAL DateTime,从而为您提供错误信息(除非您居住在 UTC 与本地时间相同的世界某个地方)
$Date = "20200210T165905+0000"
$DatePattern = "yyyyMMddTHHmmssK"
$DateTime = [DateTime]::ParseExact($Date, $DatePattern, $null)
$DateTime
返回(在我的 NL 语言环境中 => UTC + 1)
10-2-2020 17:59:05
推荐阅读
- python - 用列表分隔字符串
- javascript - 在退货声明上需要帮助
- symfony - Twig:如果用户在用户列表中有角色X(不是当前用户),则显示某些内容。
- java - Swipeable Views Null 异常错误 - Android Studio
- tensorflow - 如何在 Keras 中使用平铺功能?
- javascript - 使用 AngularJS 编辑用户 LocalStorage
- ruby-on-rails - 如何在 Ruby on rails 中使用 axlsx gem 设置 Excel 列的自动宽度
- c++ - 获取满足特征的 std::tuple 的第一个元素
- reactjs - reactstrap 警报自动隐藏
- python - 处理函数中的多个异常