Chinaunix首页 | 论坛 | 博客
  • 博客访问: 483410
  • 博文数量: 71
  • 博客积分: 1332
  • 博客等级: 少尉
  • 技术积分: 772
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-10 16:25
个人简介

文章分类

全部博文(71)

文章存档

2013年(19)

2012年(9)

2011年(43)

分类: LINUX

2011-11-01 14:29:16

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 -d "2010-11-01 00:00:00" +%s
  4. 1288540800
  5. # date -d "2010-11-01 00:00:00" +%Y-%m-%d" "%H:%M:%S
  6. 2010-11-01 00:00:00
  7. # date -d "2010-11-01 00:00:00" +%Y-%m-%d" "%T
  8. 2010-11-01 00:00:00
  9. # date -d "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 -d "Mon Nov 1 00:00:00 CST 2010" +%Y-%m-%d" "%H:%M:%S
  2. 2010-11-01 00:00:00
  3. # date -d "Mon Nov 1 00:00:00 CST 2010" +%F" "%T
  4. 2010-11-01 00:00:00
  5. # date -d "Mon Nov 1 00:00:00 CST 2010" +%F
  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 -d "Mon Nov 1 00:00:00 CST 2010" +%F
  4. 2010-11-01
  5. # date -d "2010年 11月 01日 星期一 00:00:00 CST" +%F
  6. 2011-11-01
参考http://yangqijun.iteye.com/blog/1150411
阅读(27888) | 评论(0) | 转发(0) |
0

上一篇:动态库和静态库

下一篇:mysql 命令记录

给主人留下些什么吧!~~