LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2112|回复: 6

关于date命令,如何只设置日期,不改变时间???

[复制链接]
发表于 2005-10-9 14:14:36 | 显示全部楼层 |阅读模式
我运行
date -s 2005-10-10
时间就变零点了。
我只想改变日期,不想边时间,如何实现???
发表于 2005-10-9 19:10:28 | 显示全部楼层
NAME
       date - 打印或设置系统日期和时间

总览
       date [选项]... [+格式]
       date [选项] [MMDDhhmm[[CC]YY][.ss]]

描述
       根据指定格式显示当前时间或设置系统时间.

       -d, --date=STRING
              显示由 STRING 指定的时间, 而不是当前时间

       -f, --file=DATEFILE
              显 示  DATEFILE 中每一行指定的时间, 如同将 DATEFILE 中的每行作为
              --date 的参数一样

              -I, --iso-8601[=TIMESPEC] 按照 ISO-8601 的日期/时间格式输出时间.

              TIMESPEC=‘date’  ( 或 者 不指定时)仅输出日期,等于 ‘hours’, ‘min-
              utes’, 或‘seconds’ 时按照指定精度输出日期及时间.

       -r, --reference=FILE
              显示 FILE 的最后修改时间

       -R, --rfc-822
              根据 RFC-822 指定格式输出日期

       -s, --set=STRING
              根据 STRING 设置时间

       -u, --utc, --universal
              显示或设置全球时间(格林威治时间)

       --help 显示本帮助文件并退出

       --version
              显示版本信息并退出

       格式 FORMAT 控制着输出格式. 仅当选项指定为全球时间时本格式才有效。分 别
       解释如下:

       %%     文本的 %

       %a     当前区域的星期几的简写 (Sun..Sat)

       %A     当前区域的星期几的全称 (不同长度) (Sunday..Saturday)

       %b     当前区域的月份的简写 (Jan..Dec)

       %B     当前区域的月份的全称(变长) (January..December)

       %c     当前区域的日期和时间 (Sat Nov 04 12:02:33 EST 1989)

       %d     (月份中的)几号(用两位表示) (01..31)

       %D     日期(按照 月/日期/年 格式显示) (mm/dd/yy)

       %e     (月份中的)几号(去零表示) ( 1..31)

       %h     同 %b

       %H     小时(按 24 小时制显示,用两位表示) (00..23)

       %I     小时(按 12 小时制显示,用两位表示) (01..12)

       %j     (一年中的)第几天(用三位表示) (001..366)

       %k     小时(按 24 小时制显示,去零显示) ( 0..23)

       %l     小时(按 12 小时制显示,去零表示) ( 1..12)

       %m     月份(用两位表示) (01..12)

       %M     分钟数(用两位表示) (00..59)

       %n     换行

       %p     当前时间是上午 AM 还是下午 PM

       %r     时间,按 12 小时制显示 (hh:mm:ss [A/P]M)

       %s     从 1970年1月1日0点0分0秒到现在历经的秒数 (GNU扩充)

       %S     秒数(用两位表示)(00..60)

       %t     水平方向的 tab 制表符

       %T     时间,按 24 小时制显示(hh:mm:ss)

       %U     ( 一 年 中 的) 第 几 个 星期,以星期天作为一周的开始(用两位表示)
              (00..53)

       %V     (一年中的)第几个星期,以星期一作为一周 的 开 始( 用 两 位 表 示)
              (01..52)

       %w     用数字表示星期几 (0..6); 0 代表星期天

       %W     ( 一 年 中 的) 第 几 个 星期,以星期一作为一周的开始(用两位表示)
              (00..53)

       %x     按照 (mm/dd/yy) 格式显示当前日期

       %X     按照 (%H:%M:%S) 格式显示当前时间

       %y     年的后两位数字 (00..99)

       %Y     年(用 4 位表示) (1970...)

       %z     按照 RFC-822 中指定的数字时区显示(如, -0500) (为非标准扩充)

       %Z     时区(例如, EDT (美国东部时区)), 如果不能决定是哪个时区则为空

       默认情况下,用 0 填充数据的空缺部分.  GNU 的 date 命令能分辨在 ‘%’和数字
       指示之间的以下修改.

              ‘-’ (连接号) 不进行填充 ‘_’ (下划线) 用空格进行填充
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-10 08:05:19 | 显示全部楼层
不懂,到底怎么做呀?
例如,要设日期为2005-10-10,但时间不变,命令是怎样的???
回复 支持 反对

使用道具 举报

发表于 2005-10-10 10:28:59 | 显示全部楼层
下面这个行不行哦?

date MMDD`date | awk '{print $4}' | sed 's/://' |awk -F: '{print $1}'`
回复 支持 反对

使用道具 举报

发表于 2005-10-11 23:47:25 | 显示全部楼层
例如,要设日期为2005-10-10,但时间不变,命令是怎样的???
####
请问什么意思, 要设置时间,但时间不变??
你是想获取一个时间变量吗??
回复 支持 反对

使用道具 举报

发表于 2005-10-12 02:53:05 | 显示全部楼层

  1. 1. date -s "xx days"
  2. 2. date -s "xx days ago"
复制代码

1. set the date to xx days in the future.
2. set the date to xx days ago...
回复 支持 反对

使用道具 举报

发表于 2005-10-17 21:02:18 | 显示全部楼层
date -s 20051010
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表