如何在Windows 10命令行获取当前波斯太阳历日期时间?
获取Windows命令行下的波斯太阳历日期
嘿,好问题!Windows的原生CMD命令行确实没有直接内置获取波斯太阳历(伊朗历)日期的工具,但我们可以借助PowerShell来实现——它是Windows 10及以上系统自带的,完全不需要额外安装任何软件,非常方便。
方法1:直接在PowerShell中获取
获取纯日期(格式:1396-11-28)
打开PowerShell,执行以下命令:
# 创建波斯历日历实例 $persianCalendar = New-Object System.Globalization.PersianCalendar # 获取当前时间 $currentDate = Get-Date # 格式化输出波斯历日期(四位年、两位月、两位日) "{0:0000}-{1:00}-{2:00}" -f $persianCalendar.GetYear($currentDate), $persianCalendar.GetMonth($currentDate), $persianCalendar.GetDayOfMonth($currentDate)
执行后就会输出类似1396-11-28的波斯历日期。
获取日期+时间
如果需要同时显示当前时间(时间与本地公历时间一致,仅日期转换为波斯历),可以用这个命令:
$pc = New-Object System.Globalization.PersianCalendar $now = Get-Date "{0:0000}-{1:00}-{2:00} {3}" -f $pc.GetYear($now), $pc.GetMonth($now), $pc.GetDayOfMonth($now), $now.ToString("HH:mm:ss")
输出示例:1402-05-15 14:30:45
方法2:在CMD命令行中调用PowerShell获取
如果你习惯用CMD而不是PowerShell,可以通过powershell -Command参数直接调用PowerShell命令,把结果输出到CMD中:
获取纯日期
powershell -Command "$persianCal = New-Object System.Globalization.PersianCalendar; $now = Get-Date; "{0:0000}-{1:00}-{2:00}" -f $persianCal.GetYear($now), $persianCal.GetMonth($now), $persianCal.GetDayOfMonth($now)"
获取日期+时间
powershell -Command "$pc=New-Object System.Globalization.PersianCalendar;$n=Get-Date;"{0:0000}-{1:00}-{2:00} {3}" -f $pc.GetYear($n),$pc.GetMonth($n),$pc.GetDayOfMonth($n),$n.ToString("HH:mm:ss")"
进阶:创建快捷命令(CMD专属)
如果需要频繁使用,可以用doskey给这个命令创建一个别名,比如:
doskey persiandate=powershell -Command "$pc=New-Object System.Globalization.PersianCalendar;$n=Get-Date;"{0:0000}-{1:00}-{2:00}" -f $pc.GetYear($n),$pc.GetMonth($n),$pc.GetDayOfMonth($n)"
之后在CMD里直接输入persiandate就能快速获取波斯历日期啦!
内容的提问来源于stack exchange,提问作者Elham Azadfar




