【Time系列一】datetime的妙用

        今天在弄个自动关机小脚本的时候,遇到了时间转换的问题,也难怪,以前没学过,

不能怪我不会哦!

        首先,先学会打印出当前时间的几种方式

        参考开源社区:   http://my.oschina.net/u/1032854/blog/198179#OSC_h1_3

        菜鸟编程:   http://www.runoob.com/python/python-date-time.html

 

1. time.ctime()函数—输出固定的日期格式

1 from time import ctime
2 
3 # 该函数只能以 " 星期 月 日 时:分:秒 年 " 的格式显示日期
4 print ctime()

2. time.localtime()函数—同time.ctime()都是按固定顺序输出日期

1 from time import localtime
2 
3 # 也是以固定顺序输出—"年 月 日 时:分:秒"  
4 print "%d/%d/%d %d:%d:%d" % localtime()[0:6]

3. datetime.datetime—输出固定的日期格式

【不过是精确到微秒10的-6方秒】

1 from datetime import datetime
2  
3 # 以年-月-日 时:分:秒的格式显示
4 # print datetime.now()
5  print datetime.today()

4. time.strftime()函数—同上

1 from time import strftime
2 
3 # 格式化成 2016-08-31 10:53:42的形式
4 print strftime("%Y-%m-%d %H:%M:%S")

当然,你也可以这样格式化日期

from time import strftime

# 格式化成 Wed Aug 10:58:25 2016 形式
print strftime("%a %b %H:%M:%S %Y")
另一种格式

在这里,我们要用到 "年/月/日 时:分:秒" 的格式, 所以就选择后者time.strftime()!

 

-|---->-----------------------------------------------------------------------------------------------------<<<---

在开始前,有必要给大家介绍下python中时间日期格式化符号:

  • %y 两位数的年份表示(00-99)
  • %Y 四位数的年份表示(000-9999)
  • %m 月份(01-12)
  • %d 月内中的一天(0-31)
  • %H 24小时制小时数(0-23)
  • %I 12小时制小时数(01-12)
  • %M 分钟数(00=59)
  • %S 秒(00-59)

1. 字符串(string)转化为datetime.datetime

这里我们用到datetime.datetime.strptime()

1 # 字符串转化为datetime.datetime
2 import datetime
3  
4 str = "2016/8/31"
5  
6 # Y:(Year)年, m:(month)月, d:(day)日
7 dt = datetime.datetime.strptime(str, "%Y/%m%d")
8 pritn dt
str 2 datetime

2. datetime.datetime转化为时间戳

大部分语言里的时间戳是从格林尼治的1970年1月1日子夜(0点)到现在的总毫秒数,不过在python里则

是总秒数,由于我们是东八区,所以对我们来说是从8点开始算起的,要查看起始时间,可以用上面说

到的time.ctime(0)函数! ! !

1 # datetime.datetime 转化为时间戳
2 
3 # str转化为datetime.datetime
4 str = "2016/8/31"
5 dt = datetime.datetime.strptime(str, "%Y/%m/%d")
6 
7 # datetime.datetime转化为时间戳
8 time.mktime(dt.timetuple())
datetime 2 timestamp

3. 时间戳转化为字符串

 1 # 时间戳转化为字符串
 2 
 3 import time
 4 import datetime
 5 
 6 # str转为datetime.datetime
 7 str = "2016/8/31"
 8 dt = datetime.datetime.strptime(str, "%Y/%m/%d")
 9 
10 # str 转为时间戳
11 time_stamp = time.mktime(dt.timetuple())
12 
13 # 时间戳转为字符串
14 str = time.strftime("%Y/%m/%d", time.localtime(time_stamp))
15 
16 print str
timestamp 2 str

也许大家看了上面的介绍会觉得好像也就这样,弄不出点什么好玩的东东,那你就错了,还记得前面说的自动关机的脚本么 ?

下一篇就带大家实现这个功能!

posted @ 2016-08-31 18:38  坏小孩D_R  阅读(284)  评论(0编辑  收藏  举报