美文网首页
python中的time和datetime模块

python中的time和datetime模块

作者: Jlan | 来源:发表于2016-06-18 00:23 被阅读471次

写代码时经常需要处理日期时间问题,Python 中提供了对时间日期的多种多样的处理方式,主要是在 time 和 datetime 这两个模块里,这里简单总结下。

time

在 Python 文档里, time 是归类在 Generic Operating System Services 中,换句话说, 它提供的功能是更加接近于操作系统层面的。通读 文档 可知,time 模块是围绕着 Unix Timestamp 进行的。
该模块主要包括一个类 struct_time ,另外其他几个函数及相关常量。 需要注意的是在该模块中的大多数函数是调用了所在平台 C library 的同名函数, 所以要特别注意有些函数是平台相关的,可能会在不同的平台有不同的效果。另外一点是,由于是基于Unix Timestamp,所以其所能表述的日期范围被限定在 1970 - 2038 之间,如果你写的代码需要处理在前面所述范围之外的日期,那可能需要考虑使用 datetime 模块更好。文档解释比较费劲,具体看看怎么用:

使用方法:

stramp = time.time()       #获取当前时间戳
time.ctime()               #'Wed Jun 15 11:15:53 2016'
struct = time.locatime()   #获取struct格式的时间
time.mktime(struct)        #把时间戳变成struct格式
time.loctime(stramp)      #把时间戳转换成struct格式,一般可用于把一个float数字转换成struct
time.strftime('%Y-%m-%d', time.loctime())    #把struct格式的时间按照给出的格式格式化,类似于datetime.datetime.now().strftime('%Y-%m-%d')

datetime

datetime 比 time 高级了不少,可以理解为 datetime 基于 time 进行了封装,提供了更多实用的函数。在datetime 模块中包含了几个类,具体关系如下:

object
    timedelta     # 主要用于计算时间跨度
    tzinfo        # 时区相关
    time          # 只关注时间
    date          # 只关注日期
    datetime      # 同时有时间和日期
datetime.replace(name=value) # 前面所述各项属性是 read-only 的,需要此方法才可更改
datetime.timetuple() # 返回time.struct_time 对象
dattime.strftime(format) # 按照 format 进行格式化输出

#除了实例本身具有的方法,类本身也提供了很多好用的方法:
datetime.today()a  # 当前时间,localtime
datetime.now([tz]) # 当前时间默认 localtime
datetime.utcnow()  # UTC 时间
datetime.fromtimestamp(timestamp[, tz]) # 由 Unix Timestamp 构建对象
datetime.strptime(date_string, format)  # 给定时间格式解析字符串

# datetime.timedelta
today = datetime.datetime.today()    #2016-06-15 11:21:00.205354
tomorrow = date + datetime.timedelta(days=1)
next_hour = datetime.datetime.now() + datetime.timedelta(hours=1)

time和datetime的转换

timestramp = time.loctime
datetime.datetime.fromtimestamp(timestramp)      #时间戳转换成datetime.datetime型,等价于 datetime.datetime.now()
datetime.datetime.timetuple(datetime.datetime.now)     #把datetime.datetime格式转换成time模块的struct格式
time.mktime(datetime.datetime.timetuple(datetime.datetime.now()))

几个关于时间的例子

获取明天的时间戳

方法一:

today = time.time()
tomorrow = today + 86400

方法二:

today = datetime.datetime.today()
tomorrow = today + datetime.timedelt(days=1)
datetime.datetime.timetuple(tdoay)    #把当前时间按照time的struct_time的格式输出
today_timestamp = time.mktime(datetime.datetime.timetuple(today))
tomorrow_timestamp = time.mktime(datetime.datetime.timetuple(tomorrow))

计算两个时间差

t1 = '2017-10-31 16:14:08'
t2 = '2017-08-26 10:04:12'
t11= datetime.datetime.strptime(t1, '%Y-%m-%d %H:%M:%S')
t22= datetime.datetime.strptime(t2, '%Y-%m-%d %H:%M:%S')

t11-t22
Out[12]: datetime.timedelta(66, 22196)
(t11-t22).days
Out[13]: 66

相关文章

  • time

    1. Python中处理时间的模块 Python中处理时间的模块有time、datetime和calendar。 ...

  • python datetime中的日期-时间运算

    python中的常用的时间运算模块包括time,datetime,datetime支持的格式和操作更多,time模...

  • Python日期和时间

    Python中内建的datetime模块,提供了datetime,date和time类型。 时间格式化 strft...

  • Python的time和datetime模块

    Python的time和datetime模块 time 常用的有time.time()和time.sleep()函...

  • python—time模块

    Python中,与时间处理有关的模块就包括:time,datetime以及calendar。 time模块 im...

  • python基础篇07-日期模块

    python内置了多个用于日期和时间进行操作的内置模块:time模块,datetime模块和calendar模块。...

  • Python datetime模块参考手册

    Python提供了多个内置模块用于操作日期时间,像 calendar,time,datetime。time模块提供...

  • python中的time和datetime模块

    写代码时经常需要处理日期时间问题,Python 中提供了对时间日期的多种多样的处理方式,主要是在 time 和 d...

  • Python3中datetime模块常用功能总结

    Python提供了多个内置模块用于操作日期时间,像calendar,time,datetime。time模块我在之...

  • python的datetime

    Python提供了多个内置模块用于操作日期时间,像calendar,time,datetime。time模块我在之...

网友评论

      本文标题:python中的time和datetime模块

      本文链接:https://www.haomeiwen.com/subject/qmwvdttx.html