python 日期 & 时间

时间:2021-12-27 19:27:02

1. Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间。

2. 时间间隔是以秒为单位的浮点小数。

3. 每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示。时间戳单位最适于做日期运算。但是1970年之前的日期就无法以此表示了。太遥远的日期也不行,UNIX和Windows只支持到2038年。

4. Python 的 time 模块下有很多函数可以转换常见日期格式。如函数time.time()用于获取当前时间戳, eg:

#!/usr/bin/python
# -*- coding: UTF- -*-

import time;  # 引入time模块

ticks = time.time()
print "当前时间戳为:", ticks

以上实例输出结果:
当前时间戳为: 1459994552.51

5. 时间元组(struct_time元组),属性:

python 日期 & 时间

6. 实用:时间格式<-->时间戳

(1)获取当前时间--只要将浮点数传递给 localtime 之类的函数,即从返回浮点数的时间辍方式转成 时间元组,eg:

获取本地时间(时间元组格式):localtime = time.localtime(time.time()) ---

结果: time.struct_time(tm_year=2016, tm_mon=4, tm_mday=7, tm_hour=10, tm_min=3, tm_sec=27, tm_wday=3, tm_yday=98, tm_isdst=0)

(2)获取格式化的时间:你可以根据需求选取各种格式。

(3)格式化/转换日期:我们可以使用 time 模块的 strftime 方法来格式化日期:time.strftime(format[, t]),eg:

#!/usr/bin/python
# -*- coding: UTF- -*-

# 格式化 eg1:格式化成 2016-04-07 10:25:09



eg2: import time
   a = "2013-10-10 23:40:00"
   print int(time.mktime(time.strptime(a,# 将 时间戳 转换为 指定格式日期:
eg1: import time 
timeStamp = 1381419600
print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(timeStamp)) # 结果:"2013-10-10 23:40:00"
eg2: import datetime
   timeStamp = 1381419600
dateArray = datetime.datetime.utcfromtimestamp(timeStamp)
   print dateArray.strftime("%Y-%m-%d %H:%M:%S") # 结果:"2013-10-10 23:40:00"

# 字符串格式更改:如 a = "2013-10-10 23:40:00", 想改为 a = "2013/10/10 23:40:00"
eg: import time
a ="2013-10-10 23:40:00"
   print time.strftime("%Y/%m/%d %H:%M:%S", time.strptime(a, "%Y-%m-%d %H:%M:%S")); # 结果:"2013/10/10 23:40:00"

# 获取 当前时间 并转换为 指定日期格式:
eg1: import time
   now = int(time.time()) # 获得当前时间时间戳
   timeArray = time.localtime(now)
   print time.strftime("%Y-%m-%d %H:%M:%S", timeArray) # 结果:"2013-10-10 23:40:00"
eg2: import datetime
   now = datetime.datetime.now() # 获得时间数组格式
   print now.strftime("%Y/%m/%d %H:%M:%S") # 结果:"2013/10/10 23:40:00"

# 获取 3天前的时间:datetime.timedelta([days, hours, seconds, microseconds = ..])
eg:import time
  import datetime
  threeDayAgo = (datetime.datetime.now() - datetime.timedelta(days = 3)) # 线获得时间数组格式的日期
  # timeStamp = int(time.mktime(threeDayAgo.timetuple())) # 转换为时间戳
  print threeDayAgo.strftime("%Y-%m-%d %H:%M:%S") # 结果:"2013-10-10 23:40:00"
  # 注:timedelta()的参数有:days,hours,seconds,microseconds

# 给定时间戳,计算该时间的几天前时间:
eg:timeStamp = 1381419600
  import datetime
  import time
  dateArray = datetime.datetime.utcfromtimestamp(timeStamp)
  print (dateArray - datetime.timedelta(days = 3)) # 结果:"2013-10-07 15:40:00"

此外:python中时间日期格式化符号:

%y 两位数的年份表示(-)
%Y 四位数的年份表示(-)
%m 月份(-)
%d 月内中的一天(-)
%H 24小时制小时数(-)
%I 12小时制小时数(-)
%M 分钟数(=)
%S 秒(-)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(-)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(-)星期天为星期的开始
%w 星期(-),星期天为星期的开始
%W 一年中的星期数(-)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身

(4) 获取某月日历:Calendar 模块有很广泛的方法用来处理年历和月历,eg:打印某月的月历

#!/usr/bin/python
# -*- coding: UTF- -*-

import calendar

cal = calendar.month(, )
print "以下输出2016年1月份的日历:"
print cal;

以上实例输出结果:
以下输出2016年1月份的日历:
    January
Mo Tu We Th Fr Sa Su

7 Time 模块/日历(Calender)模块

7.1 Time 模块:包含了以下内置函数,既有时间处理相的,也有转换时间格式的:

python 日期 & 时间

  python 日期 & 时间

7.2 日历(Calender)模块:此模块的函数都是日历相关的,例如打印某月的字符月历。

星期一是默认的每周第一天,星期天是默认的最后一天。更改设置需调用calendar.setfirstweekday()函数。模块包含了以下内置函数:

  python 日期 & 时间

其他相关模块和函数

在Python中,其他处理日期和时间的模块还有: