Windows下bat脚本获取时间对比Linux下shell脚本获取时间
来源:互联网 发布:重庆药交所网络事业部 编辑:程序博客网 时间:2024/05/21 03:27
最近几天做了一项window下的打包工作,因为每天都要制作安装包,所以要设置一下时间戳,为此研究了一下Windows下bat脚本获取时间和Linux下shell脚本获取时间。
1、Windows下bat脚本获取时间
(1)windows下DOS窗口date的结果 2016/09/03 周六,我们需要将其进行格式化显示,如:YYYY-MM-DD 就要进行如下操作:
日期截取遵从格式 %date:~x,y%,表示从第x位开始,截取y个长度(x,y的起始值为0)
年份从第0位开始截取4位,月份从第5位开始截取2位,日期从第8位开始截取2位
(2)windows下DOS窗口time的结果 12:05:49.02 我们需要将其进行格式化显示,如:HH:MM:SS就要进行如下操作:
时间截取遵从格式 %time:~x,y%,表示从第x位开始,截取y个长度(x,y的起始值为0)
时钟从第0位开始截取2位,分钟从第3位开始截取2位,秒钟从第6位开始截取2位
详见脚本DateTime.bat
:: 脚本创建时最好选择GB2312编码(方式很简单,新建txt文件,输入几个中文字符保存后将后缀.txt改成.bat):: @echo off 表示不回显执行的命令@echo off @echo =========Windows的原本日期时间格式=======================:: 设置变量,使用变量时需要用一对%包起来set ORIGINAL_DATE=%date% echo %ORIGINAL_DATE%@echo =========日期按照YYYY-MM-DD格式显示======================:: 日期截取遵从格式 %date:~x,y%,表示从第x位开始,截取y个长度(x,y的起始值为0):: windows下DOS窗口date的结果 2016/09/03 周六:: 年份从第0位开始截取4位,月份从第5位开始截取2位,日期从第8位开始截取2位set CURRENT_DATE=%date:~0,4%-%date:~5,2%-%date:~8,2% echo %CURRENT_DATE%@echo =========时间按照HH:MM:SS格式显示========================:: 时间截取遵从格式 %time:~x,y%,表示从第x位开始,截取y个长度(x,y的起始值为0):: windows下DOS窗口time的结果 12:05:49.02 :: 时钟从第0位开始截取2位,分钟从第3位开始截取2位,秒钟从第6位开始截取2位set CURRENT_TIME=%time:~0,2%:%time:~3,2%:%time:~6,2% echo %CURRENT_TIME%@echo =========日期时间按照YYYY-MM-DD HH:MM:SS格式显示=========set CURRENT_DATE_TIME=%date:~0,4%-%date:~5,2%-%date:~8,2%-%time:~0,2%:%time:~3,2%:%time:~6,2% echo %CURRENT_DATE_TIME%@echo =========日期时间按照YYYYMMDD_HHMMSS格式显示=============set CURRENT_DATE_TIME_STAMP=%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%echo %CURRENT_DATE_TIME_STAMP%@echo =========================================================
运行结果:
不过最近测试发现一个问题,当时钟小于等于9时,前面有个空格,比较难看,如下图
针对上面的问题做了如下修改:
:: 编码格式 GB2312:: 脚本创建时最好选择GB2312编码(方式很简单,新建txt文件,输入几个中文字符保存后将后缀.txt改成.bat):: @echo off 表示不回显执行的命令@echo off @echo =========Windows的原本日期时间格式=======================:: 设置变量,使用变量时需要用一对%包起来set ORIGINAL_DATE=%date% echo %ORIGINAL_DATE%@echo =========日期按照YYYY-MM-DD格式显示======================:: 日期截取遵从格式 %date:~x,y%,表示从第x位开始,截取y个长度(x,y的起始值为0):: windows下DOS窗口date的结果 2016/09/03 周六:: 年份从第0位开始截取4位,月份从第5位开始截取2位,日期从第8位开始截取2位set YEAR=%date:~0,4%set MONTH=%date:~5,2%set DAY=%date:~8,2%set CURRENT_DATE=%YEAR%-%MONTH%-%DAY%echo %CURRENT_DATE%@echo =========时间按照HH:MM:SS格式显示========================:: 时间截取遵从格式 %time:~x,y%,表示从第x位开始,截取y个长度(x,y的起始值为0):: windows下DOS窗口time的结果 12:05:49.02 :: 时钟从第0位开始截取2位,分钟从第3位开始截取2位,秒钟从第6位开始截取2位set HOUR=%time:~0,2%set MINUTE=%time:~3,2%set SECOND=%time:~6,2%:: 当时钟小于等于9时,前面有个空格,这时我们少截取一位,从第1位开始截取set TMP_HOUR=%time:~1,1%set NINE=9set ZERO=0:: 处理时钟是个位数的时候前面补上一个0, LEQ表示小于等于if %HOUR% LEQ %NINE% set HOUR=%ZERO%%TMP_HOUR%set CURRENT_TIME=%HOUR%:%MINUTE%:%SECOND%echo %CURRENT_TIME%@echo =========日期时间按照YYYY-MM-DD HH:MM:SS格式显示=========set CURRENT_DATE_TIME=%YEAR%-%MONTH%-%DAY% %HOUR%:%MINUTE%:%SECOND%echo %CURRENT_DATE_TIME%@echo =========日期时间按照YYYYMMDD_HHMMSS格式显示=============set CURRENT_DATE_TIME_STAMP=%YEAR%%MONTH%%DAY%_%HOUR%%MINUTE%%SECOND%echo %CURRENT_DATE_TIME_STAMP%@echo =========================================================
DateTime.bat
运行效果如下:提供一个按照时间戳创建文件夹的脚本,这个在文件备份的时候常常用到
CreateDirectoryByTimeStamp.bat
:: 编码格式 GB2312:: 脚本创建时最好选择GB2312编码(方式很简单,新建txt文件,输入几个中文字符保存后将后缀.txt改成.bat):: @echo off 表示不回显执行的命令@echo off :: 日期截取遵从格式 %date:~x,y%,表示从第x位开始,截取y个长度(x,y的起始值为0):: windows下DOS窗口date的结果 2016/09/03 周六:: 年份从第0位开始截取4位,月份从第5位开始截取2位,日期从第8位开始截取2位set YEAR=%date:~0,4%set MONTH=%date:~5,2%set DAY=%date:~8,2%:: 时间截取遵从格式 %time:~x,y%,表示从第x位开始,截取y个长度(x,y的起始值为0):: windows下DOS窗口time的结果 12:05:49.02 :: 时钟从第0位开始截取2位,分钟从第3位开始截取2位,秒钟从第6位开始截取2位set HOUR=%time:~0,2%set MINUTE=%time:~3,2%set SECOND=%time:~6,2%:: 毫秒set MILLISECIOND=%time:~9,2%:: 当时钟小于等于9时,前面有个空格,这时我们少截取一位,从第1位开始截取set TMP_HOUR=%time:~1,1%set NINE=9set ZERO=0:: 处理时钟是个位数的时候前面补上一个0, LEQ表示小于等于if %HOUR% LEQ %NINE% set HOUR=%ZERO%%TMP_HOUR%set CURRENT_DATE_TIME_STAMP=%YEAR%%MONTH%%DAY%%HOUR%%MINUTE%%SECOND%%MILLISECIOND%mkdir %CURRENT_DATE_TIME_STAMP%
2、Linux下shell脚本获取时间
Linux下shell脚本获取时间就比较简单了,详见脚本DateTime.sh:
echo "====================================================="echo "show linux original format date and time:"echo DateTime: $(date)echo "====================================================="echo "show date time like format: YYYY-MM-DD HH:MM:SS"NOW_DATE_TIME=$(date "+%Y-%m-%d %H:%M:%S")echo $NOW_DATE_TIMEecho "====================================================="echo "show date time like format: YYYYMMDD-HHMMSS"NOW_TIME=$(date "+%Y%m%d-%H%M%S")echo $NOW_TIMEecho "====================================================="echo "show last year:"LAST_YEAR=$(date "+%Y-%m-%d %H:%M:%S" --date="-1 years")echo $LAST_YEARecho "====================================================="echo "show next year:"NEXT_YEAR=$(date "+%Y-%m-%d %H:%M:%S" --date="1 years")echo $NEXT_YEARecho "====================================================="echo "show last month:"LAST_MONTH=$(date "+%Y-%m-%d %H:%M:%S" --date="-1 months")echo $LAST_MONTHecho "====================================================="echo "show next month:"NEXT_MONTH=$(date "+%Y-%m-%d %H:%M:%S" --date="1 months")echo $NEXT_MONTHecho "====================================================="echo "show last day:"LAST_DAY=$(date "+%Y-%m-%d %H:%M:%S" --date="-1 days")echo $LAST_DAYecho "====================================================="echo "show next day:"NEXT_DAY=$(date "+%Y-%m-%d %H:%M:%S" --date="1 days")echo $NEXT_DAYecho "====================================================="echo "show last hour:"LAST_HOUR=$(date "+%Y-%m-%d %H:%M:%S" --date="-1 hours")echo $LAST_HOURecho "====================================================="echo "show next hour:"NEXT_HOUR=$(date "+%Y-%m-%d %H:%M:%S" --date="1 hours")echo $NEXT_HOURecho "====================================================="echo "show last minute:"LAST_MINUTE=$(date "+%Y-%m-%d %H:%M:%S" --date="-1 minutes")echo $LAST_MINUTEecho "====================================================="echo "show next minute:"NEXT_MINUTE=$(date "+%Y-%m-%d %H:%M:%S" --date="1 minutes")echo $NEXT_MINUTEecho "====================================================="echo "show last second:"LAST_SECOND=$(date "+%Y-%m-%d %H:%M:%S" --date="-1 seconds")echo $LAST_SECONDecho "====================================================="echo "show next second:"NEXT_SECOND=$(date "+%Y-%m-%d %H:%M:%S" --date="1 seconds")echo $NEXT_SECONDecho "====================================================="
DateTime.sh
运行结果:
0 0
- Windows下bat脚本获取时间对比Linux下shell脚本获取时间
- Windows下bat脚本获取时间和Linux下shell命令获取时间
- Linux下date命令格式化时间格式shell脚本获取指定格式日期
- bat 脚本之获取当前时间
- linux下shell脚本获取网卡参数
- Windows下bat脚本设置和获取环境变量
- shell脚本如何获取当前时间
- shell脚本如何获取当前时间
- shell脚本如何获取当前时间
- shell脚本如何获取当前时间
- Windows bat脚本获取IP
- windows 下获取时间函数
- windows下高精度时间获取
- 用bat脚本获取win电脑的数字时间
- Linux下查看所有用户(shell脚本获取)
- Linux下获取IP、MAC、网关、掩码的shell脚本
- Linux下获取IP、MAC、掩码的shell脚本
- Linux Shell下获取当前脚本的绝对路径
- 颠倒的号码牌
- TCP-IP详解:TCP半打开连接及同时打开同时关闭
- abstract class和interface的区别
- 紫书dp学习
- Java并发同步器AQS
- Windows下bat脚本获取时间对比Linux下shell脚本获取时间
- java基础知识点总结
- 递归和非递归显示前序遍历
- Android平台上的高性能编程
- Ubuntu15.04+Caffe+CUDA7.5 新手安装配置教程
- ThreadLocal,线程本地变量
- STL priority_queue 优先队列
- codeforces 691F Couple Cover 暴力预处理
- test