|  | 
 
| 本帖最后由 青青草 于 2021-7-25 20:17 编辑 
 随着操作系统的不同,日期格式也可能不同:
 如:
 星期日 2021-07-25
 2021-07-25 星期日
 07/25/2021 Sun
 Sun 07/25/2021
 
 如果考虑到中、英之外的其它语言的操作系统,日期格式的种类实在太多了。因此,直接使用系统变量 %date% 进行字符串截取来获取系统日期的方法并不可取。
 实际上日期格式是由注册表 HKEY_CURRENT_USER\Control Panel\International 里面 sShortDate 的值来决定的。
 
 获取系统日期及时间:
 
 有些时候我们需要计算某些程序或任务执行完毕所耗费的时间,这就需要对时间进行计算。复制代码@echo off
setlocal EnableDelayedExpansion
  for /f "tokens=2 delims==" %%i in ('wmic path win32_operatingsystem get LocalDateTime /value ^| findstr "="') do (
    set "strDate=%%i"
     )
     set/a y=%strDate:~0,4%,m=1%strDate:~4,2%%%100,d=1%strDate:~6,2%%%100,h=1%strDate:~8,2%%%100,f=1%strDate:~10,2%%%100,s=1%strDate:~12,2%%%100   
echo !y!年!m!月!d!日 !h!时!f!分!s!秒
pause
开始时的时间:
 复制代码:mystartFunc 
    for /f "tokens=2 delims==" %%i in ('wmic path win32_operatingsystem get LocalDateTime /value ^| findstr "="') do (
        set "strDate=%%i"
     )
     set/a y=%strDate:~0,4%,m=1%strDate:~4,2%%%100,d=1%strDate:~6,2%%%100,h=1%strDate:~8,2%%%100,f=1%strDate:~10,2%%%100,s=1%strDate:~12,2%%%100    
    set/a m=(m+9)%%12,y-=m1/10,starttime1=(365*y+y/4-y/100+y/400+(m*153+2)/5+d-1),starttime2=h*3600+f*60+s
    GOTO:EOF
 结束时的时间:
 复制代码:myendFunc 
      for /f "tokens=2 delims==" %%i in ('wmic path win32_operatingsystem get LocalDateTime /value ^| findstr "="') do (
        set "strDate=%%i"
       )
     set /a y=%strDate:~0,4%,m=1%strDate:~4,2%%%100,d=1%strDate:~6,2%%%100,h=1%strDate:~8,2%%%100,f=1%strDate:~10,2%%%100,s=1%strDate:~12,2%%%100    
    set /a m=(m+9)%%12,y-=m1/10,endtime1=(365*y+y/4-y/100+y/400+(m*153+2)/5+d-1),endtime2=h*3600+f*60+s
      set /a timeca=(%endtime1%-%starttime1%)*86400+%endtime2%-%starttime2%
      set /a hour=%timeca%/3600
      set /a minute=%timeca%/60-%hour%*60
      set /a second=%timeca%-%hour%*3600-%minute%*60
      set  num=0
        if %hour% EQU %num% (if %minute% EQU %num% echo 本次操作,用时:%second%秒)        
        if %hour% EQU %num% (if %minute% NEQ %num% echo 本次操作,用时:%minute%分%second%秒 )
        if %hour% NEQ %num%  echo 本次操作,用时:%hour%时%minute%分%second%秒
 GOTO:EOF
 
 调用方法:
 
 
 
 
 
 
 
 | 
 |