首页 > 编程语言 > 详细

python 常用内建模块

时间:2017-01-03 22:02:26      阅读:217      评论:0      收藏:0      [点我收藏+]

 

1. datetime

datetime模块中定义了一个datetime类,datetime.datetiem.now()返回当前日期和时间,其类型是datetime。

1.1获取当前时间

>>> import datetime
>>> now_time = datetime.datetime.now()
>>> print(now_time)
# 2017-01-03 14:52:06.901262
>>> datetime.datetime.now
# <built-in method now of type object at 0x7f9035a42ec0>
>>> type(datetime.datetime.now())
# <class ‘datetime.datetime‘>

 >>> datetime.datetime.now()
  # datetime.datetime(2017, 1, 3, 15, 16, 17, 149946)

 

1.2 获取指定日期和时间

参考上一小节构造一个时间而已

thetime = datetime.datetime(2017, 1, 3, 15, 16, 17, 149946)

1.3 时间戳

在计算机中,时间实际上是用数字表示的。我们把1970年1月1日 00:00:00 UTC+00:00时区的时刻称为epoch time,记为0(1970年以前的时间timestamp为负数),当前时间就是相对于epoch time的秒数,称为timestamp。

时间戳和时区没有关系,都是UTC时间。时间戳一旦确定,则UTC时间就确定了

datetime类型的时间转换为timestamp,只需要调用timestamp()方法即可。

注意Python的timestamp是一个浮点数。如果有小数位,小数位表示毫秒数

>>> datetime.now().timestamp()
1483435168.053399

 

timestamp转换为datetime

使用datetime提供的fromtimestamp()方法

>>> datetime.now().timestamp()
1483435168.053399
>>> datetime.fromtimestamp(datetime.now().timestamp())
datetime.datetime(2017, 1, 3, 17, 21, 14, 288967)

>>> print(datetime.fromtimestamp(datetime.now().timestamp()))
2017-01-03 17:28:32.735594   # 输出为本地时间
>>> print(datetime.utcfromtimestamp(datetime.now().timestamp()))  
2017-01-03 09:28:41.671879   # 直接输出UTC时间

 

注意到timestamp是一个浮点数,它没有时区的概念,而datetime是有时区的。上述转换是在timestamp和本地时间做转换。本地时间是指当前操作系统设定的时区。

有关时区 UTC时间等需要好好看下

1.4 str 和datetime互相转换

很多时候,用户输入的日期和时间是字符串,要处理日期和时间,首先必须把str转换为datetime。转换方法是通过datetime.strptime()实现,需要一个日期和时间的格式化字符串:

str格式的日期转换为datetime格式的

>>> from datetime import datetime
>>> cday = datetime.strptime(2015-6-1 18:19:59, %Y-%m-%d %H:%M:%S)
>>> print(cday)            # 这里具体如何对应需要看python的文档,输入的时间为字符串格式
2015-06-01 18:19:59

 

datetime转换为str格式

>>> print(datetime.now().strftime(%a, %b %d %H:%M))
Tue, Jan 03 17:47

 

1.5 datetime加减

对日期和时间进行加减实际上就是把datetime往后或往前计算,得到新的datetime。加减可以直接用+-运算符,不过需要导入timedelta这个类:

>>> from datetime import datetime, timedelta
>>> now = datetime.now()
>>> now
datetime.datetime(2015, 5, 18, 16, 57, 3, 540997)
>>> now + timedelta(hours=10)
datetime.datetime(2015, 5, 19, 2, 57, 3, 540997)
>>> now - timedelta(days=1)
datetime.datetime(2015, 5, 17, 16, 57, 3, 540997)
>>> now + timedelta(days=2, hours=12)
datetime.datetime(2015, 5, 21, 4, 57, 3, 540997)

 

1.6 本地时间转换为UTC时间

本地时间是指系统设定时区的时间,例如北京时间是UTC+8:00时区的时间,而UTC时间指UTC+0:00时区的时间。

 

 

 

datetime表示的时间需要时区信息才能确定一个特定的时间,否则只能视为本地时间。

如果要存储datetime,最佳方法是将其转换为timestamp再存储,因为timestamp的值与时区完全无关。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

mark

python 常用内建模块

原文:http://www.cnblogs.com/lvxiaobo616/p/6246148.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!