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

Windows环境下shell脚本文件中如何正确获取日本时间

问题根因

Windows下运行.sh脚本的环境(如Git Bash、MinGW、Cygwin等)对TZ时区别名的识别规则和原生Linux环境不同,大部分环境默认没有Japan时区别名的映射,部分场景还会优先调用Windows原生的date命令而非GNU date,最终导致时间返回错误。

可行解决方案

方案1:使用时区偏移替代别名(兼容性最高,优先推荐)

直接用东九区的偏移写法替换TZ=Japan,不受时区别名映射限制,所有Unix兼容层环境都能正常识别,修改后代码如下:

DATE=`TZ=JST-9 date +"%Y%d%m%H%M"`
echo "Japan Date - "$DATE

方案2:修正date命令调用路径

如果需要保留时区别名写法,先排查当前环境调用的date版本:

  • 执行which date命令,若返回路径包含/usr/bin/date或/bin/date则为GNU date,可正常使用时区别名
  • 若返回路径包含/c/Windows/说明调用了Windows原生date,需调整环境变量PATH的优先级,把Unix兼容层的bin目录放到Windows系统目录之前即可。

方案3:WSL环境运行

直接在WSL安装的Linux发行版中运行原脚本,完全兼容原生Linux的时区规则,无需修改脚本内容即可正常返回日本时间。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 15:24:03