2014-07-02 83 views
1

我在GMT-3,但在由GitHub的Git for Windows捆綁在bash端口date命令不看到這一點,而不是挑選UTC時間和思考這也是當地時間。GitHub的混帳擊(MSysGit)顯示錯誤的時間(區)在Windows

        enter image description here

相比之下,這裏的一對GMT-4上運行一個健康的盒子:

        enter image description here

我怎樣才能讓我的腳本顯示正確的時間,以一種即使在MSysGit中也能運行跨平臺的方式?

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

+0

這不是關於Git或任何編程問題。這是關於MinGW32和'date'命令。 –

+0

如果你只是在談論git日誌輸出,你可能也有興趣[更多git特定的答案](http://stackoverflow.com/a/23900181/634824) –

+0

它*是一個編程問題如果您需要在腳本上使用date命令,並且不能依賴其輸出。在某些情況下,如果你想在bash中兼容Windows/Linux,那麼你必須把它們拼湊在一起,因爲在看到我找不到任何東西的時候,我想我會與世界分享一個解決方案。關於這個標籤,是的,它錯誤地標記爲'git',但是如果你重新考慮近距離投票,我會很感激,因爲這實際上是關於編程,即腳本。您選擇的緊密原因提及「除非它涉及主要用於編程的工具」 - 情況就是如此 –

回答

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%)。