gpt4 book ai didi

powershell - 为什么在 PowerShell 中将 DateTime 对象嵌入到字符串中会丢失 DateTime 区域设置?

转载 作者:行者123 更新时间:2023-12-04 00:53:46 24 4
gpt4 key购买 nike

我的机器的区域设置是 UK (en-gb)。当我执行以下操作(检查 SSL 证书的到期日期)时,DateTime 对象以英国格式存储值

$expiration = Get-Date $req.ServicePoint.Certificate.GetExpirationDateString()

如果您只是将值打印到命令提示符,请先看看会发生什么,其次看看如果您尝试将该 DateTime 对象值嵌入到字符串中会发生什么。

PS>$expiration 
19 December 2016 23:59:59
PS>write-host "this is the expiration: $expiration"
this is the expiration: 12/19/2016 23:59:59

所以我们看到它已切换为非英国格式(应该是 19/12/2016)。为什么会这样,有没有简单的解决方法?

最佳答案

这是一个字符串扩展问题,恐怕有点痛苦。您知道这个显示不正确:

"$(Get-Date 01/02/2016)"

但是,这些会按您的预期显示:

(Get-Date 01/02/2016).ToString()
"$((Get-Date 01/02/2016).ToString())"

这两种方法都可以解决该问题:

$expiration = Get-Date 01/02/2016
write-host "this is the expiration: $($expiration.ToString())"
write-host ("this is the expiration: {0}" -f $expiration)

在转换为 DateTime 时,您会看到类似的对时区的无知:

[DateTime]$var = "01/02/2016"
$var

克里斯

关于powershell - 为什么在 PowerShell 中将 DateTime 对象嵌入到字符串中会丢失 DateTime 区域设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38825753/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com