在PowerShell中将其他区域日期时间格式转换为本地日期时间格式

时间:2015-08-06 07:37:47

标签: date powershell datetime powershell-v2.0 powershell-v3.0

我正在尝试进行日期时间比较。

日志文件中的日期时间 - 2015年8月4日星期二17:05:41

get-date命令的本地系统日期时间 -

6。 elokuuta 2015 10:18:47

我在2015年8月6日10:18:47将其翻译成谷歌翻译。

如何转换此日期/时间格式,以便进行比较?

我尝试过多种方法和选择,但没有运气。

到目前为止我的脚本:

# To get today's date
$Today=[datetime]::Today
# Output is 6. elokuuta 2015 0:00:00

$log_date = "Tue Aug  4 17:05:41 2015"

我通过使用new-object system.globalization.datetimeformatinfo在某处阅读 它可以实现,但我不知道如何用这个来改变当前的日期时间。 https://technet.microsoft.com/en-us/library/ff730960.aspx

1 个答案:

答案 0 :(得分:1)

[DateTime]个对象没有格式。它只是从某个时间点(01/01/0001 00:00:00.0000000)传递的ticks(0.0000001秒)。只有将[DateTime]对象保存为字符串或将其显示给用户时才需要格式,因为用户无法理解635744160000000000 ticks

您只需要解析字符串以获取[DateTime]对象:

$log_date = [datetime]::ParseExact('Tue Aug  4 17:05:41 2015','ddd MMM d HH:mm:ss yyyy',[cultureinfo]::InvariantCulture,'AllowInnerWhite')

现在您有两个[DateTime]个对象可以比较它们:

$Today -eq $log_date
$Today -lt $log_date
$Today -gt $log_date

或者找出它们之间的区别:

$Today - $log_date