标题: [日期时间] [已解决]cmd下如何输出统一格式的日期时间 [打印本页]
作者: habulu 时间: 2018-1-11 09:44 标题: [已解决]cmd下如何输出统一格式的日期时间
本帖最后由 habulu 于 2018-1-19 12:55 编辑
cmd下如何输出当前时间
经常会碰到服务器时间格式不是常规的那种格式,比如(2018年1月11日可能是这种输出):
C:\Users\Administrator>echo %date%
01\11\18 周四
C:\Users\Administrator>echo %time%
9:36:45.50
一般服务器上面也不敢随便去改默认的输出格式,那么有没什么不管原先的默认格式怎么样,统一输出成这种(2018-01-11 09:36:45),网上的那些方式一般不管用:
C:\Users\Administrator>echo %date:~0,4%-%date:~5,2%-%date:~8,2% %time:~0,2%:%time:~3,2%:%time:~6,2%
01\1-\1- 周 9:43:46
完全是乱的
作者: codegay 时间: 2018-1-14 07:38
例行推荐使用别的语言。就不用浪费纠结这种问题了。同时收益应该也更加大。
nim语言的时间格式例子:- import times
- echo getTime().getLocalTime.format("yyyy-MM-dd HH:mm:ss")
- echo getDateStr() & "- -" & getClockStr()
- #输出:
- #2018-01-14 07:36:18
- #2018-01-14- -07:36:18
复制代码
这个github项目的作者想做一个各种语言版的日历,在这里收集了各种语言的日期格式化的代码;
https://github.com/Sneezry/hacking-date
作者: slore 时间: 2018-1-14 13:14
有些时候BAT不方便,尤其是字符串处理,推荐用别的语言是对的建议。
但是,LZ的这个需求犯不着用其他语言,用BAT能混用的且系统自带的js就行了。
cscript //nologo gettime.js- var time = new Date();
- WScript.echo(time);
- WScript.echo(getYMDHmS(time));
-
- function getYMDHmS(dt){
- var s = dt.getFullYear() + '-' + fillZero(dt.getMonth() + 1) + '-' + dt.getDate();
- s += ' ' + fillZero(dt.getHours()) + ':' + fillZero(dt.getMinutes()) + ':' + fillZero(dt.getSeconds());
- return s;
- }
-
- function fillZero(str) { return ('00' + str).slice(-2);}
复制代码
作者: /zhqsystem/zhq 时间: 2018-1-14 18:49
- :1
- call:GetDateTime
- echo,%#GetDate#% %#GetTime#%
- goto:1
- pause
- goto:eof
- :GetDateTime
- call:GetDate
- call:GetTime
- goto:eof
- :GetDate
- for /f "tokens=1,* delims=:" %%c in ('chcp')do for /f %%c in ("%%d")do set "#chcp#=%%c"&&chcp 437
- set "#GetDate#="&&for /f "tokens=*" %%i in ('"echo,|date"')do (for %%j in (%%i)do set "#GetDate#=%%j")&&call set "#GetDate#=%%#GetDate#:/=-%%"&&chcp %#chcp#%&goto:eof
- goto:eof
- :GetTime
- for /f "tokens=1,* delims=:" %%c in ('chcp')do for /f %%c in ("%%d")do set "#chcp#=%%c"&&chcp 437
- set "#GetTime#="&&for /f "tokens=*" %%i in ('"echo,|Time"')do (for %%j in (%%i)do set "#GetTime#=0000000%%j")&&call set "#Gettime#=%%#GetTime#:~-11%%"&&chcp %#chcp#%&goto:eof
- goto:eof
复制代码
作者: Batcher 时间: 2018-1-15 20:20
参考 http://bbs.bathome.net/thread-3328-1-1.html
作者: idean 时间: 2018-2-22 23:43
本帖最后由 idean 于 2018-2-22 23:48 编辑
以前也纠结这个问题,后来也想到一种很简单的方法,用批出处理的嵌套就可以实现。批处理其实还是很强大的,有人还实现了面向对象,就是效率差了一点
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |