回答
有Richie Lawrence's batch library有所有這些漂亮的方便腳本。你需要的是DateToSec(它使用GetDate和GetTime)。
這裏有一個簡單的腳本,它採用一點點WMI:
@echo off
setlocal
call :GetUnixTime UNIX_TIME
echo %UNIX_TIME% seconds have elapsed since 1970-01-01 00:00:00
goto :EOF
:GetUnixTime
setlocal enableextensions
for /f %%x in ('wmic path win32_utctime get /format:list ^| findstr "="') do (
set %%x)
set /a z=(14-100%Month%%%100)/12, y=10000%Year%%%10000-z
set /a ut=y*365+y/4-y/100+y/400+(153*(100%Month%%%100+12*z-3)+2)/5+Day-719469
set /a ut=ut*86400+100%Hour%%%100*3600+100%Minute%%%100*60+100%Second%%%100
endlocal & set "%1=%ut%" & goto :EOF
結果將返回到傳遞給GetUnixTime
的第一個參數,即%UNIX_TIME%
。
例如:
1341791426 seconds have elapsed since 1970-01-01 00:00:00
希望它能幫助!
這是一個很好的答案,但我似乎在代碼中發現了一個錯誤。在今年的前兩個月,結果是未來兩年。如果你有'4800 + z',我認爲你需要'4800-z'。請參閱Richie Lawrence的原始DateToSecs代碼。如果您有時間,請驗證我的修復(並修改您的帖子)。 – jimhark 2013-01-17 21:36:04
@jimhark你是對的。感謝您的更正! – 2013-01-19 11:27:22
好。謝謝。我在副本中做了另一次更改。這不是一個真正的bug,但我想我會分享給你。我將這些代碼分開以嘗試完全理解它。如果將'-2472633'更改爲'-719469',我想你不需要添加4800。它只是退出了這裏不需要的調整。所以,你用兩條以'10000%Year %%% 10000-z'和'Day-719469'結尾的行結束。沒有什麼大的差別,但現在更容易解釋719469是什麼,這是1970年代用來適應時代的天數。 – jimhark 2013-01-19 12:54:41
沒有用於返回UNIX時間的批處理命令。您唯一的選擇是編寫一個可以從批處理文件運行的程序,該程序將返回UNIX時間,或者您可以使用Windows PowerShell。
到目前爲止最好的解決方案是下載獨立的date.exe unix端口。
建議您將其重命名爲unixdate.exe,以避免與MS Date命令衝突。
從here
- 下載&解壓得到它。據我所知,所有的工具都是「便攜式」的,也就是說,他們不需要任何安裝程序來工作。我只用了幾個(rm.exe & date.exe)。 此外,您可以重命名exe文件的情況下,他們可能會utils的你匹配其他系統已經
- 發現在子文件夾中實際可執行的端口(USR \本地\ wbin)
- 獲取幫助的信息鍵入命令,隨後用--help(必須拼寫以小寫幫助)
例子:
((PROMPT)):unixdate +%Y%M%d
20141704
((PROMPT)):unixdate +%Y%b%d
2014Sep04
'20141704'? '17'? Octember ??? – Stephan 2014-09-04 19:22:45
什麼簡單的1線長的C程序返回的UNIX時間戳?您可以在批處理腳本中從%errorlevel%中檢索值。
#include <stdio.h>
#include <time.h>
int main(void)
{
return (int) time(NULL);
}
在我的命令測試提示它的工作:
C:\Users\dabaran\Desktop\cs50\src\C>.\time || echo %errorlevel% && set mytstamp=%errorlevel%
1419609373
C:\Users\dabaran\Desktop\cs50\src\C>echo %mytstamp%
1419609373
創建一個名爲「getUtime .bat文件。蝙蝠」
@echo off
echo WScript.Echo(new Date().getTime()); > %temp%\time.js
cscript //nologo %temp%\time.js
del %temp%\time.js
,並呼籲像這樣
"C:\>getUTime"
1430894237616
- 1. 處理Unix時間戳和highcharts
- 2. 即時到Unix時間戳
- 3. 時間戳:iso8601 vs unix時間戳
- 4. 日期到Unix時間戳
- 5. C#Unix時間戳到DateTime
- 6. NSTimeInterval到unix時間戳
- 7. UNIX時間戳到MySQL DATETIME
- 8. 轉換Unix紀元時間戳到MySQL時間戳PHP
- 9. 不能插入unix時間戳到表的時間戳字段
- 10. Unix時間戳到秒,分鐘,小時
- 11. 預處理器時間戳
- 12. unix時間戳之間的時差
- 13. Unix時間戳的時間轉換
- 14. Unix時間戳VS日期時間
- 15. Javascript:未來時間爲UNIX時間戳
- 16. Unix時間戳和JavaScript時間;太大!
- 17. 從Unix時間戳組的時間槽
- 18. 使用UNIX時間戳處理PHP中的時區偏移量
- 19. Oracle使用UNIX時間戳
- 20. UNIX的AWSDynamoDBQueryExpression時間戳
- 21. 轉換Unix時間戳
- 22. unix時間戳和php
- 23. 蜂巢UNIX時間戳
- 24. Jenkins中的Unix時間戳
- 25. sqlite中的Unix時間戳?
- 26. PHP比較UNIX時間戳
- 27. Unix時間戳到當地時間在時區
- 28. psycopg2處理時間戳沒有時區
- 29. 帳戶時區時,UNIX時間戳
- 30. 斯卡拉Unix時間戳到日期
的[什麼是Windows等價的命令可能重複 「日期+%S」(http://stackoverflow.com/questions/11124572/什麼是Windows的等效的命令日期) – dbenham 2012-07-08 19:53:05
@dbenham事實上,一個重複的,我忽略了你的解決方案。 – 2012-07-08 21:42:36
下載一個GNU date.exe(來自GnuWin32,MinGW,Cygwin)文件將是有益的。 – 2012-07-09 06:26:09