Modules: time and datetime

1. time stamp

  • 在进行微信开发过程中, 发现微信传输的XML文件中, creatTime使用的是timestamp(时间戳).
  • 查看当前时刻的时间戳.

    import time
    time.time()

    • 输出以秒计算的float value, 例如: 1448531422.9
  • 将时间戳转化为自定义格式时间.

    • 使用time.localtime(TimeStamp)

      timeStamp = time.time()
      timeArray = time.localtime(timeStamp)

    • 输出一个struct_time序列.

         time.struct_time(tm_year=2015, tm_mon=11, tm_mday=24, tm_hour=23, tm_min=7, tm_sec=46, tm_wday=1, tm_yday=328, tm_isdst=0) 
      
    • 转化成一个字符串格式的时间可以用 time.strftime()

      Time = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)

    • 输出类似于2015-11-24 23:07:46

    • 其中的格式可以随自己调整, 添加或省去任何时间信息. 详细的符号可以看这里
    • 还有一点, 输出为struct_time的函数为
      • time.localtime()
      • time.gmtime()
  • 还有一种直接的转化方式:ctime(secs)或者acstime(localtime(secs))

    now = time.time()
    time.ctime(now)

    • 转化为固定格式:Thu Nov 26 22:26:41 2015

2.timedelta

  • delta在数学中通常指代变量的变化量.所以从这个模块的名字就可以看出, 这个模块可以用来指代时间的变化量.
  • 下面介绍timedelta如何进行运算的.

    • print timedelta(days=365), 可以看到

      365 days, 0:00:00

      • 其中的days可以换成weeks, hours, seconds, miliseconds等等.
      • 数字可以是ints, longs, floats, 可以是负数.
      • 每个不同的时间单位会有不同的变化区间.
    • 加法, 数乘

      • 10*timedelta(days=365)
      • timedelta(days=365)+timedelta(days=365)
    • timedelta(days=365).days

      • 将数字提取出来.

3. date

  • 常用函数

    • date(year, month, day) 为date赋值.
    • date.today() 查看今天日期.
    • date.fromtimestamp(timestamp)将时间戳转化成年月日
    • date的属性.year, .month, .day. 可以将一条date中的年月日提出来.
    • +/_timedelta
    • date之间进行加减数乘.
    • date.replace(year, month, day)
    • date.strftime(format)

      d = date(2015, 12, 8)
      date = d.strftime("%Y/%m/%d") print date

4. datetime

  • 类似于date, 区别在于该module还包含时刻信息.
  • 常用function
    • datetime.today()
      • print后的格式类似于2015-11-29 15:53:47.629477
    • datetime.fromtimestamp(timestamp)
      • 也可以将时间戳转换成日期和时刻.
    • 其他的一些属性类似date.
    • .timetuple()
      • 将datetime转化成list. 所有信息可以被循环打印出来

5. time

  • datetime.time()
    • 将datetime中的时间部分提取出来.

注意

  • 在边学边coding的过程中, 使用了from datetime import *, 终于出现这个弊端, 就是我同时使用 import time, 在运行time.time()发生了冲突. 原因是: datetime中也有time模块, 但是没有.time()这一属性.因此, 真的要尽量少用 from XXX import *.

更新

151126 编辑
151127 更新
151129 更新