有没有办法使用Windows命令获取纪元时间?

时间:2010-08-10 22:53:29

标签: windows batch-file cmd

有没有办法使用Windows命令获取纪元时间?如果没有,可以修改datetime命令输出吗?

例如,Windows中的date给出了/等的日期。我想得到一个没有特殊字符的输出,例如/:

6 个答案:

答案 0 :(得分:4)

通过我自己的在线研究,我无法直接通过批处理文件找到这样做的方法。但是,我能够找到适合我的解决方案:

在toEpoch.vbs:

WScript.Echo DateDiff("s", "01/01/1970 00:00:00", Now())

然后从我的批处理脚本调用如下:

for /f "delims=" %%x in ('cscript /nologo toEpoch.vbs') do set epoch=%%x

将%epoch%变量设置为当前的unix时间戳,我可以根据需要使用它。

希望这有帮助。

答案 1 :(得分:4)

使用此命令显示历元后的秒数。

(Cmd命令)

powershell -command "(New-TimeSpan -Start (Get-Date "01/01/1970") -End (Get-Date)).TotalSeconds"

答案 2 :(得分:2)

从命令行

试试这个

for /f "tokens=2,3,4 delims=/ " %f in ('date /t') do @echo %h%g%f

如果在批处理文件

中,请记住加倍%chars
@echo off
setlocal
for /f "tokens=2,3,4 delims=/ " %%f in ('date /t') do set d=%%h%%g%%f
for /f "tokens=1,2 delims=: " %%f in ('time /t') do set t=%%f%%g
echo datetime is : %d%%t: =0%
endlocal

我得到了这个输出:

c:\development>xx.bat
datetime is : 201008111108

[编辑Kurt Pfeifle关于时间扩展空间的评论]

答案 3 :(得分:1)

没有可靠的方法在批处理文件中获取日期而无需借助外部工具或其他语言(如VBScript)。

通过VBScript,您可以使用DateTime功能访问当前日期和时间。 FormatDateTime将为您提供一种文化中立的日期/时间格式,然后您可以对其进行解析。

您可以在脚本中使用WScript.Echo从VBScript获取结果,并从批处理中调用它:

for /f "delims=" %%x in ('cscript /nologo foo.vbs') do set result=%%x

然后变量%result%包含VBScript在第一行中输出的内容。

答案 4 :(得分:1)

CoreUtils for Windows项目http://gnuwin32.sourceforge.net/packages/coreutils.htm有一个date命令,它提供与Linux相同的选项。

下载该软件,并将date.exe重命名为gnudate.exe,以避免与Dos date命令发生冲突。你需要文件libintl-2.dlllibiconv-2.dll运行命令。

对于所有可用选项类型:

gnudate --help 

例如gnudate "+%a %e %b %Y %H:%M:%S"将给出:

Sun 10 apr 2016 21:52:35

命令gnudate +%s将提供自纪元以来的秒数:

1460325461

下一个Dos批处理文件显示了gnudate的用法。您需要将gnudate %参数中的+%s加倍。

rem set the variable s to the epoch seconds.
for /f "tokens=1 delims=" %%A in ('gnudate +%%s') do set s=%%A
rem use `%s%` for the time offset parameter of the ffmpeg drawtext filter.
ffmpeg -y -f lavfi -i testsrc=duration=15.3:size=cif:r=10 -vf "drawtext=fontfile=arial.ttf:text=%%{pts\\\:localtime\\\:%s%\\\:%%a %%d %%b %%Y %%H\\\\\\:%%M\\\\\\:%%S}:fontsize=10:x=w-text_w:y=h-lh:box=1" a.mp4

ffplay a.mp4

此批处理文件在Linux下的虚拟机中使用Windows 8进行了测试。

要运行它,您需要安装ffmpeg 您可以从https://ffmpeg.zeranoe.com/builds/下载Static build

答案 5 :(得分:0)

要获得“yyyymmdd”格式的时间,请尝试以下方法:

for /F "tokens=2-4 delims=/ " %i in ('date /t') do echo %k%i%j

更多信息:

http://www.sprint.net.au/~terbut/usefulbox/msdoscmds.htm