Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Datetime 将日期时间集合转换为yyyy-mm-dd_Datetime_Powershell - Fatal编程技术网

Datetime 将日期时间集合转换为yyyy-mm-dd

Datetime 将日期时间集合转换为yyyy-mm-dd,datetime,powershell,Datetime,Powershell,我有一个文本文件中的日期集合 Ex.file.txt 2011-01-01 2011-02-14 2011-02-21 2011-03-17 2011-09-11 2011-11-11 我有一个名为重要日期的函数,它保存了[datetime]日期的集合 函数保存这些类型的日期 November-11-15 12:00:00 AM November-11-14 12:00:00 AM November-11-13 12:00:00 AM February-14-15 12:00:

我有一个文本文件中的日期集合

Ex.file.txt

2011-01-01

2011-02-14

2011-02-21

2011-03-17

2011-09-11

2011-11-11
我有一个名为
重要日期
的函数,它保存了
[datetime]
日期的集合

函数保存这些类型的日期

November-11-15 12:00:00 AM

November-11-14 12:00:00 AM

November-11-13 12:00:00 AM

February-14-15 12:00:00 AM
我想将函数日期转换为
yyyy-mm-dd
格式,并附加到file.txt文件中

到目前为止,我有:

$Dates = Important-Dates 
if ( -not (test-path 'file.txt' -pathtype leaf))
{
"{0:yyyy-MM-dd}" -f $Dates | Set-Content 'file.txt'
exit 1
}
else {
"{0:yyyy-MM-dd}" -f @($_.$Dates) | Add-Content 'file.txt'
exit 1
}
作为File.txt文件的结果,我得到的只是重要日期列表中的第一个日期

“11月11日至15日12:00:00 AM”
-它会转换为
2015-11-11


不过我想要所有的约会。我做错了什么?

-f
提供集合将只使用集合中的第一个元素。您希望处理集合中的每个日期对象

要处理集合中的每个对象,可以使用:

…或者更简洁地说:

$Dates | % { "{0:yyyy-MM-dd}" -f $_ } |  Set-Content 'file.txt'

DateTime
对象可以通过其
ToString()方法格式化:

$Dates | % { $_.ToString('yyyy-MM-dd') } | Set-Content 'file.txt'

如果“2011-11-11”在列表中出现了两次,你知道我如何消除相同的日期吗?你不应该在评论中添加问题。请为该问题创建一个新问题。谢谢。如果“2011-11-11”在文件中出现两次,你知道我如何消除相同的日期吗?
$Dates | % { $_.ToString('yyyy-MM-dd') } | Set-Content 'file.txt'