如何在currentdate前30天找到日期? 如何将日期转换为毫秒? 使用批处理脚本。
请帮我解决这个问题。谢谢......
答案 0 :(得分:0)
这是批处理文件中的VBS脚本。
:: date 30 days ago
@echo off
set day=-30
echo >"%temp%\%~n0.vbs" s=DateAdd("d",%day%,now) : d=weekday(s)
echo>>"%temp%\%~n0.vbs" WScript.Echo year(s)^& right(100+month(s),2)^& right(100+day(s),2)
for /f %%a in ('cscript /nologo "%temp%\%~n0.vbs"') do set "result=%%a"
del "%temp%\%~n0.vbs"
set "YYYY=%result:~0,4%"
set "MM=%result:~4,2%"
set "DD=%result:~6,2%"
set "date-then=%yyyy%-%mm%-%dd%"
echo The date then was "%date-then%"
pause
答案 1 :(得分:0)
使用本机Windows批处理命令很难处理日期和时间,尤其是在处理大数字时,可以找到自1970-01-01 00:00:00.000 UTC以来以毫秒表示的时间戳。
正如foxidrive所证明的那样,使用VBScript(或JScript)计算很容易。
我写了一个hybrid JScript/batch utility called getTimestamp.bat,这使得在批处理脚本中处理日期和时间变得非常容易。该实用程序是纯脚本,可以从XP开始在任何现代Windows机器上本机运行。完整文档嵌入在实用程序中。
在今天(当地时间)前30天获取日期并将其存储在DT变量中
call getTimestamp -od -30 -f {yyyy}-{mm}-{dd} -r DT
您没有指定日期格式。该实用程序几乎支持您可能想要的任何格式。
获取当前日期/时间,表示为自1970-01-01 00:00:00.000 UTC以来的毫秒数并存储在TS变量中
call getTimestamp -f {ums} -r TS
注意:我怀疑JScript时间计算可能无法计算闰秒。因此,该值可能不是100%准确。
如果您想要今天30天前的午夜(当地时间)的时间戳,则表示为自1970-01-01 00:00:00.000 UTC以来的毫秒数并存储在TS变量< /强>
call getTimestamp -od -30 -f {mm}/{dd}/{yyyy} -r DT
call getTimestamp -d '%DT%' -F {ums} -r TS
该实用程序有 许多 选项。从命令提示符输入getTimestamp -?
以获取完整文档。