shell date 日期转换

date参数说明

-d, --date=STRING
              显示字符串指定的时间,并非当前时间
其他参数通过下面的实例就可以看出其用法了
比如:%Y    2010    (年份,四位)
            %m    月份
            %d    日期
            +%Y-%m-%d 相当与%F
            
            %H:%M:%S 时(24小时格式):分:秒,相当与%T
            %I:%M:%S 时(12小时格式):分:秒
            
其他还有很多参数,可以man date查看。


  1. # echo $LANG
  2. en_US

  3. date -"2010-11-01 00:00:00" +%s
  4. 1288540800
  5. date -"2010-11-01 00:00:00" +%Y-%m-%d" "%H:%M:%S
  6. 2010-11-01 00:00:00
  7. date -"2010-11-01 00:00:00" +%Y-%m-%d" "%
  8. 2010-11-01 00:00:00
  9. date -"2010-11-01 00:00:00" +%F" "%T


# 需要注意的一点:环境LANG的值,中文字符编码的情况
# 请看下面的例子:
# 英文环境下,Mon Nov  1 00:00:00 CST 2010这样的字符可以直接进行转换
  1. # export LANG=en_US
  2. # echo $LANG
  3. en_US
  4. date -d @1288540800
  5. Mon Nov 1 00:00:00 CST 2010

  1. date -"Mon Nov 1 00:00:00 CST 2010" +%Y-%m-%d" "%H:%M:%S
  2. 2010-11-01 00:00:00
  3. date -"Mon Nov 1 00:00:00 CST 2010" +%F" "%
  4. 2010-11-01 00:00:00
  5. date -"Mon Nov 1 00:00:00 CST 2010" +%
  6. 2010-11-01


# 中文环境下,2010年 11月 01日 星期一 00:00:00 CST这样的字符不能直接进行转换,需要注意!!!
  1. # export LANG=zh_CN.utf8
  2. # echo $LANG
  3. zh_CN.utf8

  4. date -d @1288540800
  5. 2010年 11月 01日 星期一 00:00:00 CST

下面的做法是不能得到预期的,对比一下就可以看到了:
  1. date +%F
  2. 2011-11-01
  3. date -"Mon Nov 1 00:00:00 CST 2010" +%F
  4. 2010-11-01
  5. date -"2010年 11月 01日 星期一 00:00:00 CST" +%F
  6. 2011-11-01
参考http://yangqijun.iteye.com/blog/1150411
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值