本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理

以下文章来源于Python之王 ,作者小sen

前言

time和datetime是Python处理日期和时间的标准库。在我们项目的实际开发当中使用率是非常高的。datetime模块有四个重要的类,date,time,datetime,以及timedelta类,分别表示的是日期对象、时间对象、日期时间对象和时间差对象。

时间戳

时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。注意:目前Python中支持的最大的时间戳为32535244799(3001-01-01 15:59:59)

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

import time

time.time() #返回当前时间的时间戳 2000年时间戳 都是10位

1557212908.1839943

# 获取毫秒级别的时间戳(爬虫参数基本用14位时间戳加密)

int(round(time.time() * 1000))

1557212908183

在编写代码时,往往涉及时间、日期、时间戳的相互转换。

「str类型的日期转换为时间戳」

import time

# 字符类型的时间

t = '2019-05-07 15:08:28'

# 转为时间数组

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

print(timeArray)

# timeArray可以调用tm_year等

print(timeArray.tm_year)   # 2019

# 转为时间戳

timeStamp = int(time.mktime(timeArray))

print(timeStamp)  # 1381419600

# 结果如下

time.struct_time(tm_year=2019, tm_mon=5, tm_mday=7, tm_hour=15, tm_min=8, tm_sec=28, tm_wday=1, tm_yday=127, tm_isdst=-1)

2019

1557212908

「字符串格式更改」

# "2019-05-07 15:08:28" 改为 "2019/5/7 15:08:28"

# 先转换为时间数组

import time

str_time = "2019-05-07 15:08:28"

time_array = time.strptime(str_time, "%Y-%m-%d %H:%M:%S")

other_way_time = time.strftime("%Y/%m/%d %H:%M:%S", time_array)

print(other_way_time)   # 2019/05/07 15:08:28

now = datetime.datetime.now()

otherStyleTime = now.strftime("%Y--%m--%d %H:%M:%S")

print(otherStyleTime) # 2019--05--07 15:08:28

「时间戳转时间日期」

import time

import datetime

# 使用time

timeStamp = 1557212908

timeArray = time.localtime(timeStamp)

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

print(otherStyleTime)   # 2019--05--07 15:08:28

# 使用datetime

timeStamp = 1557212908

dateArray = datetime.datetime.fromtimestamp(timeStamp)

otherStyleTime = dateArray.strftime("%Y--%m--%d %H:%M:%S")

print(otherStyleTime)   # 2019--05--07 15:08:28

# 使用datetime,指定utc时间,相差8小时

timeStamp = 1557212908

dateArray = datetime.datetime.utcfromtimestamp(timeStamp)

otherStyleTime = dateArray.strftime("%Y--%m--%d %H:%M:%S")

print(otherStyleTime)   # 2019--05--07 07:08:28

Datetime

datetime模块是在time模块的基础之上做了封装,提供了更多更好用的类供我们使用,常用的有date、time、datetime、timedelta、tzinfo。但是为了更灵活的处理时间,最好是将time模块和datetime模块中的精髓学习到。

date类

date类:主要用于处理年、月、日。

date类的构造函数如下:datetime.date(year, month, day)

示例:

from datetime import date

d = date(1999, 9, 29)

print(d)

print('year:', d.year)

print('month:', d.month)

print('day:', d.day)

具体输出:

1999-09-29

year: 1999

month: 9

day: 29

time类

time类:主要用于处理小时、分钟、秒。

time类的构造函数如下:datetime.time(hour[,minute[,second[,microsecond[,tzinfo]]]])

示例:

from datetime import time

t = time(22, 45, 59)

print(t)

print('hour:', t.hour)

print('minute:', t.minute)

print('second:', t.second)

print('microsecond:', t.microsecond) #微秒

print('格式化输出:', t.strftime('%H:%M:%S'))

print('Earliest  :', datetime.time.min)

print('Latest    :', datetime.time.max)

输出:

22:45:59

hour: 22

minute: 45

second: 59

microsecond: 0

格式化输出:22:45:59

Earliest  : 00:00:00

Latest    : 23:59:59.999999

datetime子类

datetime子类是date对象和time对象的结合体,是datetime的子类,和它的方法很类似。

它的构造函数如下:

datetime.datetime(year,month,day[,hour[,minute[,second[,microsecond[,tzinfo]]]]]),

各参数的含义与date、time的构造函数中的一样,要注意参数值的范围。

「获取当前日期和时间」

>>> from datetime import datetime

>>> now = datetime.now() # 获取当前datetime

>>> print(now)

2019-05-07 16:28:07.198690

>>> print(type(now))

timedelta类

timedelta类是用来计算二个datetime对象的差值的。可以进行加减乘除运算的,它的实例化方法和datetime对象很类似 此类中包含如下属性:

(1) days:天数。

(2) microseconds:微秒数(>=0并且<1秒)。

(3) seconds:秒数(>=0并且<1天)。

两个date或datetime对象相减就可以返回一个timedelta对象。

import datetime as dt

date1=dt.date(2020,10,28)

timedel=dt.timedelta(days=4)

print('四天后的日期是:', date1+timedel)

四天后的日期是:2020-11-01

python时间库_Python处理日期时间的标准库:time和datetime相关推荐

  1. python案例演示_Python中日期时间案例演示

    案例:准备10个人姓名,然后为这10个人随机生成生日[都是90后] 1.统计出那些人是夏季[6月-8月]出生的. 2.最大的比最小的大多少天 3.谁的生日最早,谁的生日最晚 备注:春季[3-5]夏季[ ...

  2. 如何在python中找到两个日期时间对象之间的时差?

    本文翻译自:How do I find the time difference between two datetime objects in python? 如何分辨两个datetime对象之间的时 ...

  3. 把一个中文日期时间格式字符串转为日期时间

    MS SQL Server2012中把一个中文日期时间格式字符串转为日期时间. 如: DECLARE @d NVARCHAR(20) = N'2012年08月12日14时36分48秒' SELECT  ...

  4. mysql 时间 1_(转)mysql日期时间函数1

    MySQL 日期跟时间函数(一) 作者: Mr.Zhang MySQL 日期跟时间的样式 在MySQL 中有很多有用处的日期跟时间函数.我们常常看到许多应用于日期的计算是在代码 方面上进行的,但是其实 ...

  5. android时间24小时,安卓时间显示TextClock显示日期时间,24小时制和12小时制(自定义...

    安卓时间显示TextClock显示日期时间,24小时制和12小时制(自定义 安卓时间显示TextClock显示日期时间,24小时制和12小时制(自定义时间) 这个地方的是按24小时制还是12小时制 是 ...

  6. php 时间加法函数_PHP 日期时间函数的高级应用技巧

    PHP 日期时间函数常用函数高级使用技巧,大家在以后的开发中能用的到. PHP的日期时间函数date() 1,年-月-日 echo date('Y-m-j'); 2007-02-6 echo date ...

  7. php标准库string,PHP中的一些标准库

    很多PHPer都不知道PHP有着自己的一些标准库,官网已经列出了SPL的PHP标准库 网址:php.net/spl 标准库中主要的一些数据结构 数据结构 名称 SplStack 栈 SplQueue ...

  8. python输出时间格式_python中日期和时间格式化输出的方法小结_python

    这篇文章主要介绍了python中日期和时间格式化输出的方法,实例总结了Python常见的日期与事件操作技巧,非常具有实用价值,需要的朋友可以参考下 本文实例总结了python中日期和时间格式化输出的方 ...

  9. python 从日期列表中选出最大的_python – 从日期时间列表中获取最早和最晚时间...

    我有, timestamp=[] for x in model_obj: timestamp.append(x.start_time) print timestamp 结果: [datetime.da ...

最新文章

  1. Python基本语法_强制数据类型转换
  2. 使用Python解析nginx日志文件
  3. java中批次号_在一个批次中插入多笔记录的几种方法
  4. linux安装配置SVN服务器
  5. matlab产生正态分布样本
  6. java去除不为null,java – 选择特定字段不为NULL的所有记录
  7. PHP中类重写方法,php中重写方法有什么规则
  8. linux创建用户已存在哪里,解决linux下创建用户时出现 Creating mailbox file: 文件已存在...
  9. 二分法08:寻找旋转排序数组中的最小值
  10. 思科实验3.数据链路层:生成树配置
  11. zzulioj 1038 python 绝对值最大
  12. 极速版RPS选股,一秒出结果的方案是如何实现的!股票量化分析工具QTYX-V2.5.3...
  13. bat文件建文件夹时乱码及失败问题
  14. svn问号图标解决方案
  15. 知乎热榜的话题,为什么从阿里巴巴离职,大萌哥汇总了9大理由,看完我先柠檬酸了!
  16. 我感觉的优美诗句品鉴(不定时更新)
  17. 基础教育弊端日益显现 中国课程改革势在必行
  18. python使用 pywin32 模块操作 excel,Python 操作 excel 系列之五
  19. 写给仿真软件研发的“一篇文章入门”系列(终)
  20. matlab识别岩石破坏,MATLAB环境下岩石SEM图像损伤分形维数的实现

热门文章

  1. 6点叫醒全员的腾讯是枕戈待旦,还是如李彦宏说的“新瓶装旧酒”
  2. 华为发布企业服务云化转型战略 未来5年投资5亿美金建设服务能力(2017年09月06日)
  3. Docker学习总结(26)——Docker 管理工具的选择:Kubernetes 还是 Swarm?
  4. Tomcat学习总结(13)—— Tomcat常用参数配置说明
  5. Oracle学习总结(5)—— SQL语句经典案例
  6. 详细对比9门主流编程语言
  7. python自动控制库_python PyAUtoGUI库实现自动化控制鼠标键盘
  8. python查找文件名_Python实现的根据文件名查找数据文件功能示例
  9. 不做别人思想的“跑马场”(人民论坛)
  10. 致敬各位10年阿里的前端开发