【发布时间】:2021-08-18 19:06:24
【问题描述】:
我的日期字符串如下所示:'812021'。 (那是 2021 年 8 月 1 日)
这是“Mdyyyy”格式,我已经用the documentation 仔细检查过。
- M --> 月份,无前导零,1-12
- d --> 日期,无前导 零,1-31
- yyyy --> 4 位年份
但是,当我尝试 ParseExact() 时,如果我没有提供前导零,则会收到错误消息。不幸的是,源内容不会有前导零。
为什么我的日期格式不起作用? Mdyyyy?
[DateTime]::ParseExact('812021', 'Mdyyyy', [CultureInfo]::InvariantCulture)
<#
Exception calling "ParseExact" with "3" argument(s): "String was not recognized as a valid DateTime."
At line:18 char:1
+ [DateTime]::ParseExact('812021', 'Mdyyyy', [CultureInfo]::InvariantCu ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : FormatException
#>
[DateTime]::ParseExact('08012021', 'Mdyyyy', [CultureInfo]::InvariantCulture)
# Sunday, August 1, 2021 12:00:00 AM
更新 -- 其他示例
2021 年 8 月 1 日下午 4:01:31
MdyyyyHms
失败:
[DateTime]::ParseExact('812021160132', 'MdyyyyHms',[CultureInfo]::InvariantCulture)
不会失败:
[DateTime]::ParseExact('08012021160132', 'MdyyyyHms', [CultureInfo]::InvariantCulture)
【问题讨论】:
-
好的。您如何区分 12 月 1 日和 1 月 21 日? ;-) ...两者都是
1212021...我认为您需要在月份和日期之间使用分隔符 -
1212021好点!你不能用这种格式。完整的实际格式为MddyyyyHms。供应商在文件名中有所有日期。我正在尝试查找和删除早于特定日期的项目。我需要多考虑一下。 -
这意味着天有前导零...
-
你说得对,没有前导零——对于月份或日期......我正在用另外两个完整格式的例子来更新它。
-
我认为您至少需要前导零作为日期或月份和日期之间的分隔符。
标签: powershell