我有一个用这个值存储的变量
PS C:Users> $Time
Monday, November 30, 2020 8:55:01 AM
Sunday, October 18, 2020 11:10:01 PM
Sunday, November 8, 2020 10:40:34 PM
Sunday, November 8, 2020 11:47:37 PM
Sunday, November 8, 2020 10:59:57 PM
Tuesday, December 1, 2020 3:15:42 AM
Monday, November 30, 2020 7:00:32 PM
Monday, November 30, 2020 12:19:06 AM
Monday, November 30, 2020 7:01:34 PM
Tuesday, December 1, 2020 1:12:10 AM
Tuesday, December 1, 2020 2:37:18 AM
Sunday, November 1, 2020 7:39:34 PM
Sunday, September 27, 2020 11:48:38 PM
我希望变量$time的时间格式更改为";yyyy-mm-dd hh:mm:ss";以便显示所有列表的
PS C:Users> $Time
2020-11-30 08:55:01
2020-10-18 11:10:01
2020-11-08 10:40:34
2020-11-08 11:47:37
2020-11-08 10:59:57
2020-12-01 03:15:42
2020-11-30 07:00:32
2020-11-30 12:19:06
2020-11-30 07:01:34
2020-12-01 01:12:10
2020-12-01 02:37:18
2020-11-01 07:39:34
2020-09-27 11:48:38
请帮助我为同一创建代码
感谢
这是StackOverflow上常见的问题,然而,似乎大多数答案都指向将存储单个日期的变量转换为格式化字符串。
而您有一个要转换的日期数组。
我将假设您有DateTime
值的Array
,而不是String
的Array
。
对于初学者来说,有很多关于这方面的博客和文章,更不用说文档了。
- https://devblogs.microsoft.com/scripting/formatting-date-strings-with-powershell/
- https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/get-date
根据您需要如何使用这些数据,有一百万种不同的方法可以做到这一点。
首先,您需要学习如何对一组对象执行操作。使用ForEach
、ForEach-Object
、Select-Object
等。一旦你学会了如何使用这些,那么问题就变成了";如何将日期格式化为字符串";,它在这里和互联网上到处都是。
以下是一些例子:
# Use this to generate sample data:
$Time = 10000,9000,8000,7000,6000,5000,4000,3000,2000,1000 |
ForEach-Object { (Get-Date).AddMinutes(-$_) }
## Various solutions:
$Time | ForEach-Object { $_.ToString('yyyy-MM-dd HH:mm:ss') }
$Time | ForEach-Object { $_ | Get-Date -Format 'yyyy-MM-dd HH:mm:ss' }
$Time | ForEach-Object { $_ | Get-Date -f 'yyyy-MM-dd HH:mm:ss' }
$Time | ForEach-Object { Get-Date $_ -f 'yyyy-MM-dd HH:mm:ss' }
$Time | Select-Object @{N='TimeString'; E={$_.ToString('yyyy-MM-dd HH:mm:ss')}}
foreach ($tv in $time) { $tv.ToSTring('yyyy-MM-dd HH:mm:ss') }
$Time.ForEach({$_.ToString('yyyy-MM-dd HH:mm:ss')})
# Other methods submitted in comments, thanks @iRon
$Time | ForEach-Object ToString('yyyy-MM-dd HH:mm:ss')
$Time.ForEach('ToString', 'yyyy-MM-dd HH:mm:ss')
请注意,这是区分大小写的。
MM
-表示两位数的月份值mm
-表示两位数的日值