回答
有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时间戳到LDAP时间戳
- 2. Unix时间戳到FAT时间戳
- 3. 在php中处理unix时间戳?
- 4. 处理Unix时间戳和highcharts
- 5. 即时到Unix时间戳
- 6. 批处理日期时间戳比较
- 7. 转换Unix时间戳STR和STR到UNIX时间戳在python
- 8. Unix时间戳到.net日期时间
- 9. 时间戳:iso8601 vs unix时间戳
- 10. date_parse_from_format到UNIX时间戳
- 11. 店unix时间戳到MySQL
- 12. 日期到Unix时间戳
- 13. UNIX时间戳到MySQL DATETIME
- 14. C#Unix时间戳到DateTime
- 15. NSTimeInterval到unix时间戳
- 16. PHP Unix时间戳
- 17. PHP UNIX时间戳
- 18. UNIX时间戳小时前
- 19. 不能插入unix时间戳到表的时间戳字段
- 20. 转换Unix纪元时间戳到MySQL时间戳PHP
- 21. 预处理器时间戳
- 22. Unix时间戳到秒,分钟,小时
- 23. C#:Unix时间戳和日期时间
- 24. Unix时间戳和JavaScript时间;太大!
- 25. Unix时间戳的时间转换
- 26. unix时间戳之间的时差
- 27. Javascript:未来时间为UNIX时间戳
- 28. 从Unix时间戳组的时间槽
- 29. 将时间转换为Unix时间戳
- 30. R:时间戳,Unix时间和“strptime”
的[什么是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