Board logo

标题: [原创] [批处理命令一日一教学 续](25)获取系统日期:date [打印本页]

作者: Hello123World    时间: 2011-8-25 16:47     标题: [批处理命令一日一教学 续](25)获取系统日期:date

【原】[一日一教学]批处理系列帖子索引 http://bbs.bathome.net/thread-2576-1-1.html
【续】[一日一教学]批处理系列帖子索引 http://bbs.bathome.net/thread-13798-1-1.html


帮助信息:
  1. C:\Users\helloworld>date /?
  2. 显示或设置日期。
  3. DATE [/T | date]
  4. 显示当前日期设置和输入新日期的提示,请键入
  5. 不带参数的 DATE。要保留现有日期,请按 Enter。
  6. 如果命令扩展被启用,DATE 命令会支持 /T 开关;
  7. 该开关指示命令只输出当前日期,但不提示输入新日期。
复制代码
命令概括:
date,全英文date,意为:日期。

如帮助所说,是用来“显示或设置日期”。



参数详解:
设置日期,输入光杆date,再手动输入要修改的日期。
例如:
  1. C:\Users\helloworld>date
  2. 当前日期: 2011/08/25 周四
  3. 输入新日期: (年月日) 2011/08/26
复制代码
再次查看日期,只查看,不修改,加上/t参数。
例如:
  1. C:\Users\helloworld>date /t
  2. 2011/08/26 周五
复制代码
日期由25变为26了。

也可以直接修改。
例如:
  1. C:\Users\helloworld>date 2011/08/27
  2. C:\Users\helloworld>date /t
  3. 2011/08/27 周六
复制代码
扩展阅读:
date是一个内部命令,同样的还有%date%环境变量。
  1. @Echo Off
  2. Set date=2011/08/25 周四
  3. Echo %date%
  4. date /t
  5. Pause>Nul
复制代码
显示结果:
  1. 2011/08/25 周四
  2. 2011/08/27 周六
复制代码
可以看出环境变量%date%可以被赋值,但是赋值并不会改变date /t的显示。

可以这么说,%date%环境变量只能用来显示当前的日期,但不能改变当前的日期;date命令既可以显示当前日期,又可以改变当前日期。


%date%环境变量来显示当前的日期.
例如:
  1. C:\Users\helloworld>echo %date%
  2. 2011/08/27 周六
复制代码

作者: xslxslxsl    时间: 2011-8-25 17:07

在此学习了,感谢楼主。
作者: lfoqtal    时间: 2011-8-26 06:53

在教学%date% 时可以介绍下面的一些问题吗?
1)不同系统的显示格式问题
2)如何提取年份、月份或日期的方法
3)日期的计算,如加两天等问题
作者: Hello123World    时间: 2011-8-26 16:32

回复 3# lfoqtal


    1)不同系统的显示格式问题
2)如何提取年份、月份或日期的方法
3)日期的计算,如加两天等问题

1.不同系统的显示格式(- /),我听说是注册表键值的问题,跟系统无关,但是当时没细问那位批友,如果可能,你能帮忙查一下吗?
2.这是你提出的3点扩展知识,我唯一可以做到的,稍后会更新。
3.这个涉及到算法,暂时还没理出头绪,由于有平润年的2月在……
作者: lfoqtal    时间: 2011-8-27 13:51

本帖最后由 lfoqtal 于 2011-8-27 13:54 编辑

回复 4# Hello123World


    其实我也不是要你做得很得杂,因为这是入门教学,只是针对常见问题做出解释或提醒
如:
由于不同系统设置不同显示格式有所区别:2011-2-28   和 2011/2/28 等
在输入日期时是不用与系统格式相同的,只要注意基本格式就行,以下输入都是有效的:2011-02-8;2011-2-08;2011/02/08;2011.2.8
而以下格式是错误的:20110208;
作者: 329692195    时间: 2011-12-14 19:52

本帖最后由 329692195 于 2011-12-14 19:56 编辑

回复 3# lfoqtal


    我正好也有这样的问题
    中文版和英文版系统的日期格式是不一样的,那么,有些涉及到日期的处理上会因为操作系统语言的不同而导致批处理运行异常。
    有什么好的方法可以解决呢?
作者: 喃喃努努    时间: 2012-5-25 10:24

回复 1# Hello123World


  首先感谢楼主了,只是在实际应用中遇到了一些问题,在NT系统中取环境变量%date%,取不到值。echo %date%显示的是%date%,求解释。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2