标题: [日期时间] 批处理世界时转换求助 [打印本页]
作者: meteormiao 时间: 2015-4-16 18:23 标题: 批处理世界时转换求助
我现在通过- @echo off
- >%tmp%\tmp.vbs echo wscript.echo DateAdd ("h",-8,Now())
- for /f "delims=" %%a in ('cscript //nologo %tmp%\tmp.vbs') do set newtime=%%a&&del %tmp%\tmp.vbs
- echo %newtime%
- pause
复制代码
这个脚本可以把系统时间转换成世界时,但是发现转换完成的世界时,格式输出的时候,月日时缺位均不补0,请教一下,这个补0应该怎么个写法呢,万分感谢
作者: pcl_test 时间: 2015-4-16 20:33
- @echo off
- >%tmp%\tmp.vbs echo,NewDateTime = DateAdd("h",-8,Now())
- >>%tmp%\tmp.vbs echo,FmtDateTime = Year(NewDateTime)^&Chr(45)^&Right("0"^&Month(NewDateTime),2)^&Chr(45)^&Right("0"^&Day(NewDateTime),2)^&Chr(32)^&Right("0"^&Hour(NewDateTime),2)^&Chr(58)^&Right("0"^&Minute(NewDateTime),2)^&Chr(58)^&Right("0"^&Second(NewDateTime),2)
- >>%tmp%\tmp.vbs echo,wscript.echo FmtDateTime
- for /f "delims=" %%a in ('cscript //nologo %tmp%\tmp.vbs') do set newtime=%%a
- echo %newtime%
- pause
复制代码
作者: CrLf 时间: 2015-4-16 20:40
- @echo off
- >%tmp%\tmp.vbs echo wscript.echo DateAdd ("h",-8,Now())
- for /f "tokens=1-3 delims=-\/ " %%a in ('cscript //nologo %tmp%\tmp.vbs') do (
- set /a "newtime=%%a * 10000+10%%b %% 100 * 100 + 10%%c %% 100"
- del %tmp%\tmp.vbs
- )
- echo %newtime%
- pause
复制代码
作者: apang 时间: 2015-4-16 21:10
本帖最后由 apang 于 2015-4-16 21:18 编辑
- @echo off
- (for /f %%a in ('wmic os get CurrentTimeZone^|findstr [0-9]') do (
- echo,Set dt=CreateObject("WbemScripting.SWbemDateTime"^)
- echo,dt.SetVarDate DateAdd("n",-%%a,Now^), true
- echo,WScript.Echo dt.Value
- ))>$
-
- for /f "delims=." %%a in ('cscript -nologo -e:vbs $') do set "d=%%a"
- echo,%d:~,4%-%d:~4,2%-%d:~6,2% %d:~8,2%:%d:~10,2%:%d:~-2%
- pause
复制代码
作者: cuicuiys 时间: 2017-3-23 11:09
一段完整的获取世界时的代码,完全批处理,不需其他脚本支持,拿走不谢~~
set td=%date:~2,2%%date:~5,2%%date:~8,2%
set dy=%date:~0,4%
set dm=%date:~5,2%
set dd=%date:~8,2%
set da=%date:~8,2%
if %dm%%dd%==0101 goto L01
if %dm%%dd%==0201 goto L02
if %dm%%dd%==0301 goto L07
if %dm%%dd%==0401 goto L02
if %dm%%dd%==0501 goto L04
if %dm%%dd%==0601 goto L02
if %dm%%dd%==0701 goto L04
if %dm%%dd%==0801 goto L02
if %dm%%dd%==0901 goto L02
if %dm%%dd%==1001 goto L05
if %dm%%dd%==1101 goto L03
if %dm%%dd%==1201 goto L06
if %dd%==02 goto L10
if %dd%==03 goto L10
if %dd%==04 goto L10
if %dd%==05 goto L10
if %dd%==06 goto L10
if %dd%==07 goto L10
if %dd%==08 goto L10
if %dd%==09 goto L10
if %dd%==10 goto L11
set /A dd=dd-1
set dt=%dy%-%dm%-%dd%
goto END
10
set /A dd=%dd:~1,1%-1
set dt=%dy%-%dm%-0%dd%
goto END
:L11
set dt=%dy%-%dm%-09
goto END
:L02
set /A dm=%dm:~1,1%-1
set dt=%dy%-0%dm%-31
goto END
:L04
set /A dm=dm-1
set dt=%dy%-0%dm%-30
goto END
:L05
set dt=%dy%-09-30
goto END
:L03
set dt=%dy%-10-31
goto END
:L06
set dt=%dy%-11-30
goto END
:L01
set /A dy=dy-1
set dt=%dy%-12-31
goto END
:L07
set /A "dd=dy%%4"
if not %dd%==0 goto L08
set /A "dd=dy%%100"
if not %dd%==0 goto L09
set /A "dd=dy%%400"
if %dd%==0 goto L09
:L08
set dt=%dy%-02-28
goto END
:L09
set dt=%dy%-02-29
goto END
:END
set yt=%dt:~0,4%%dt:~5,2%%dt:~8,2%
set td2=%date:~0,4%%date:~5,2%%date:~8,2%
set nt=%time:~0,2%
if %nt% lss 8 goto L12
set /a nt1=%nt%-8
echo %nt1%
if %nt1% lss 10 goto L13
echo sjs=%td2%%nt1%
goto END2
:L13
echo sjs=%td2%0%nt1%
goto END2
:L12
set /a nt1=%nt%+24-8
echo %nt1%
echo sjs=%yt%%nt1%
:END2
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |