You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

macOS Ventura虚拟机中PowerShell DateTime年份显示异常求助

解决PowerShell在macOS上DateTime显示波斯历年份的问题

你的问题是因为当前系统区域设置默认使用了波斯历(Solar Hijri Calendar),所以Get-Date返回的年份是波斯历的1403(对应公历2024年)。以下是几种解决方法:

临时修改PowerShell会话的文化设置

在当前PowerShell会话中切换到使用公历的文化,比如中文简体或英文(美国):

# 切换到中文简体文化(使用公历)
[System.Threading.Thread]::CurrentThread.CurrentCulture = [System.Globalization.CultureInfo]::GetCultureInfo("zh-CN")
[System.Threading.Thread]::CurrentThread.CurrentUICulture = [System.Globalization.CultureInfo]::GetCultureInfo("zh-CN")

# 重新获取日期并输出
$myday = Get-Date
Write-Host $myday
Write-Host $myday.ToString("yyyy-MM-dd HH:mm:ss")

或者使用英文(美国)文化:

[System.Threading.Thread]::CurrentThread.CurrentCulture = [System.Globalization.CultureInfo]::GetCultureInfo("en-US")
[System.Threading.Thread]::CurrentThread.CurrentUICulture = [System.Globalization.CultureInfo]::GetCultureInfo("en-US")

该设置仅对当前PowerShell会话有效,关闭窗口后会恢复。

永久修改macOS系统区域设置

通过系统设置彻底更改默认日历为公历:

  • 打开「系统设置」→「通用」→「语言与地区」
  • 找到「日历」选项,选择「公历」
  • 重启PowerShell后,所有会话都会默认使用公历日期。

格式化时指定使用公历

如果不想修改系统或会话的文化设置,可以在ToString方法中直接指定使用公历的格式提供器:

$myday = Get-Date
# 直接指定英文(美国)文化(默认使用公历)进行格式化
Write-Host $myday.ToString("yyyy-MM-dd HH:mm:ss", [System.Globalization.CultureInfo]::GetCultureInfo("en-US"))

内容的提问来源于stack exchange,提问作者user1389406

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 19:12:41