首页 > 技术文章 > python时间处理

lantingg 2018-09-07 12:38 原文

Time模块

time时间类型

*   时间戳 
*   格式化的字符串
*   结构化时间

生成时间戳

1. time.time()
输出 1515137389.69163
=====================

 

生成格式化的时间字符串

1. time.ctime()
输出 Fri Jan  5 15:34:00 2018
=============================
2. time.strftime("%Y-%m-%d %H:%M:%S")
输出 2018-01-05 15:34:27
========================

 

生成结构化时间

1. time.gmtime()
输出 time.struct_time(tm_year=2018, tm_mon=1, tm_mday=5, tm_hour=7, tm_min=34, tm_sec=57, tm_wday=4, tm_yday=5, tm_isdst=0)
===========================================================================================================================
2. time.localtime()
输出 time.struct_time(tm_year=2018, tm_mon=1, tm_mday=5, tm_hour=15, tm_min=35, tm_sec=59, tm_wday=4, tm_yday=5, tm_isdst=0)
============================================================================================================================

 

时间戳转结构化时间

1. time.gmtime(time.time()
输出 time.struct_time(tm_year=2018, tm_mon=1, tm_mday=5, tm_hour=7, tm_min=36, tm_sec=40, tm_wday=4, tm_yday=5, tm_isdst=0)
===========================================================================================================================
2. time.localtime(time.time())
输出 time.struct_time(tm_year=2018, tm_mon=1, tm_mday=5, tm_hour=15, tm_min=37, tm_sec=32, tm_wday=4, tm_yday=5, tm_isdst=0)
============================================================================================================================

 

时间戳转格式化时间字符串

1. time.ctime(time.time())
输出 Fri Jan  5 15:38:14 2018
=============================

 

结构化时间转时间戳

1. time.mktime(time.localtime())
输出 1515138003.0
=================

 

结构化时间转格式化的时间字符串

1. time.asctime(time.localtime())              # 第一个参数是默认参数
输出 Fri Jan  5 15:40:22 2018
=============================
2. time.strftime('%Y-%m-%d',time.localtime())  # 第二个参数是默认参数
输出 2018-01-05
===============

 

格式化的时间字符串转结构化时间

1. time.strptime(time.strftime("%Y-%m-%d %H:%M:%S"), '%Y-%m-%d %H:%M:%S')
输出 time.struct_time(tm_year=2018, tm_mon=1, tm_mday=5, tm_hour=15, tm_min=41, tm_sec=35, tm_wday=4, tm_yday=5, tm_isdst=-1)
=============================================================================================================================
2. time.strptime(time.ctime(), '%a %b %d %H:%M:%S %Y')
输出 time.struct_time(tm_year=2018, tm_mon=1, tm_mday=5, tm_hour=15, tm_min=42, tm_sec=7, tm_wday=4, tm_yday=5, tm_isdst=-1)
============================================================================================================================

 

格式化时间转时间戳

1. time.mktime(time.strptime(time.ctime(), "%a %b %d %H:%M:%S %Y"))
输出 1515138182.0
=================
2. time.mktime(time.strptime(time.strftime("%Y-%m-%d %H:%M:%S"), "%Y-%m-%d %H:%M:%S"))
输出 1515138201.0
=================

 

time%*参数
格式含义
%a 本地(locale)简化星期名称
%A 本地完整星期名称
%b 本地简化月份名称
%B 本地完整月份名称
%c 本地相应的日期和时间表示
%d 一个月中的第几天(01 - 31)
%H 一天中的第几个小时(24小时制,00 - 23)
%I 第几个小时(12小时制,01 - 12)
%j 一年中的第几天(001 - 366)
%m 月份(01 - 12)
%M 分钟数(00 - 59)
%p 本地am或者pm的相应符
%S 秒(01 - 61)
%U 一年中的星期数。(00 - 53星期天是一个星期的开始。)第一个星期天之前的所有天数都放在第0周。
%w 一个星期中的第几天(0 - 6,0是星期天)
%W 和%U基本相同,不同的是%W以星期一为一个星期的开始
%x 本地相应日期
%X 本地相应时间
%y 去掉世纪的年份(00 - 99)
%Y 完整的年份
%Z 时区的名字(如果不存在为空字符)
%% ‘%'字符

 

Datetime模块

<class 'datetime.datetime'>对象

1. datetime.datetime.now()
输出 2018-01-05 15:45:32.334965
===============================
2. datetime.datetime(year=2018,month=1,day=3,hour=4, minute=32, second=23, microsecond=22222)
输出 2018-01-03 04:32:23.022222
===============================

 

<class 'datetime.timedelta'>对象

1. datetime.timedelta(days=5,seconds=1,microseconds=22222,minutes=11,hours=11,weeks=2)
输出 19 days, 11:11:01.022222
=============================

 

<class 'datetime.date'>对象

1. datetime.date(year=2018,month=1,day=3)
输出 2018-01-03
===============

 

<class 'datetime.time'>对象

1. datetime.time(hour=4, minute=32, second=23, microsecond=22222)
输出 04:32:23.022222
====================

 

字符串转datetime对象

1. datetime.datetime.strptime(time.strftime("%Y-%m-%d %H:%M:%S"), "%Y-%m-%d %H:%M:%S")
输出 2018-01-05 15:48:42
======================== 
2. datetime.datetime.strptime(time.ctime(), "%a %b %d %H:%M:%S %Y")
输出 2018-01-05 15:49:04
========================

 

时间戳转datetime对象

1. datetime.datetime.fromtimestamp(time.time())
输出 2018-01-05 15:49:21.308415
===============================
2. datetime.datetime.utcfromtimestamp(time.time())
输出 2018-01-05 07:49:57.526658
===============================

 

datetime对象转格式化时间字符

1. datetime.datetime(2018, 1, 5, 15, 19, 59).strftime("%Y-%m-%d %H:%M:%S")
输出 2018-01-05 15:19:59
========================

 

datetime对象转结构化时间

1. datetime.datetime(2018, 1, 5, 15, 19, 59).timetuple()
输出 time.struct_time(tm_year=2018, tm_mon=1, tm_mday=5, tm_hour=15, tm_min=19, tm_sec=59, tm_wday=4, tm_yday=5, tm_isdst=-1)
=============================================================================================================================

推荐阅读