【问题标题】:GitHub's Git Bash (MSysGit) showing wrong time(zone) on WindowsGitHub 的 Git Bash (MSysGit) 在 Windows 上显示错误的时间(区域)
【发布时间】:2014-08-23 16:30:31
【问题描述】:

我使用的是 GMT-3,但 GitHub 的 Git for Windows 捆绑的 bash 端口中的 date 命令没有看到这一点,而是选择了 UTC 时间并认为它也是当地时间。

    

相比之下,这是一个在 GMT-4 上运行的健康盒子:

    

如何让我的脚本显示正确的时间,即使在 MSysGit 中也能跨平台工作?

(相关:a question about a similar issue with Cygwin

【问题讨论】:

  • 这与 Git 或任何编程问题无关。这是关于 MinGW32 和 date 命令的。
  • 如果你只是在谈论 git log 输出,你可能对a more git-specific answer也感兴趣
  • 如果您需要在脚本上使用 date 命令并且不能依赖它的输出,这一个编程问题。在某些情况下,如果你想在 bash 中实现 Windows/Linux 的兼容性,你必须拼凑出一个 hack,因为在查找之后我找不到任何东西,我想我会与世界分享一个解决方案。关于标签,是的,错误地将其标记为git,但如果您重新考虑近距离投票,我将不胜感激,因为这实际上是关于编程,即脚本。您选择的最接近的原因是“除非它涉及主要用于编程的工具” - 就是这种情况

标签: bash date timezone msysgit github-for-windows


【解决方案1】:

无论您是在 Windows 还是 Linux 上运行,此功能都会为您提供正确的时间:

# Are we running on Windows?
isWindows() { [[ -n "$WINDIR" ]]; }

# Get time, cross-platform.
getTime() {
    if isWindows; then
        cmd.exe "/c echo %time%" | head -c 8 | tr ' ' 0 # pad single-digit hours.
    else
        date +%T
    fi
}

获取日期也留作阅读练习(提示:%date%)。

【讨论】:

    猜你喜欢
    • 2014-04-14
    • 2014-01-19
    • 2018-02-15
    • 2011-04-09
    • 2011-06-11
    • 1970-01-01
    • 2017-07-28
    • 2019-05-09
    • 2011-03-09
    相关资源
    最近更新 更多