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

Converting other zone date time format to local date-time format in PowerShell

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

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

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

6. elokuuta 2015 10:18:47

现在是 2015 年 8 月 6 日 10:18:47 我在 Google 上翻译了它。

如何转换这种 date/time 格式,以便进行比较?

我尝试了多种方法和选项,但没有成功。

到目前为止我的脚本:

# 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

[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