Python时间处理

1.Python有三个时间处理的模块datetime,date,time.

1.1 datetime、date、time都提供了strftime()方法格式化strftime()

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

1.2 常见日期输出方式

1.2.1 datetime

In [15]:import datetime

In [16]:datetime.datetime.now()
Out[16]: datetime.datetime(2016, 8, 14, 10, 34, 24, 230000)

1.2.2 timestamp

In [17]:import time

In [18]:time.time()
Out[18]: 1471142250.306

1.2.3 time tuple

In [19]:import time

In [20]:time.localtime()
Out[20]: time.struct_time(tm_year=2016, tm_mon=8, tm_mday=14, 
            tm_hour=10, tm_min=38, tm_sec=42, tm_wday=6, tm_yday=227, tm_isdst=0)

1.2.4 string

In [21]:import datetime

In [22]:datetime.datetime.now().strftime("%Y-%m-%d %H:%M%S")
Out[22]: '2016-08-14 10:5115'

1.2.5 date

In [23]:import datetime

In [24]:datetime.datetime.now().date()
Out[24]: datetime.date(2016, 8, 14)

2.1 datetime基本操作

2.1.1 获取当前datetime

In [25]:import datetime

In [26]:datetime.datetime.now()
Out[26]: datetime.datetime(2016, 8, 14, 10, 57, 27, 783000)

2.1.2 获取当前date

In [27]:import datetime

In [28]:datetime.date.today()
Out[28]: datetime.date(2016, 8, 14)

2.1.3 获取明天/前N天

In [29]:import datetime

In [30]:datetime.date.today()+datetime.timedelta(days=1)
Out[30]: datetime.date(2016, 8, 15)

2.1.4 三天前

In [31]:import datetime

In [32]:datetime.date.today()-datetime.timedelta(days=3)
Out[32]: datetime.date(2016, 8, 11)

2.1.5 获取当天开始和结束时间(00:00:00 23:59:59)

In [33]:datetime.datetime.combine(datetime.date.today(), datetime.time.min)
Out[33]: datetime.datetime(2016, 8, 14, 0, 0)

In [34]:datetime.datetime.combine(datetime.date.today(), datetime.time.max)
Out[34]: datetime.datetime(2016, 8, 14, 23, 59, 59, 999999)

2.1.6 获取两个datetime的时间差

In [36]:(datetime.datetime(2017,1,13,12,0,0)-datetime.datetime.now())
Out[36]: datetime.timedelta(152, 3104, 273000)


In [37]:(datetime.datetime(2017,1,13,12,0,0)-datetime.datetime.now()).total_seconds()
Out[37]: 13135887.501

2.1.7 获取本周/本月/上月最后一天

#本周
In [40]:today = datetime.date.today()

In [40]:today
Out[40]: datetime.date(2016, 8, 14)

In [41]:sunday = today+datetime.timedelta(6-today.weekday())

In [41]:sunday
Out[42]: datetime.date(2016, 8, 14)

#本月
In [43]:import calendar

In [44]:today = datetime.date.today()
In [45]: today
Out [45]: today
 (0, 31)
In [46]:last_day_num = calendar.monthrange(today.year, today.month)

In [47]:last_day = datetime.date(today.year, today.month, last_day_num[1])
Out[48]: datetime.date(2016, 8, 31)

#获取上个月的最后一天(可能跨年)
In [49]:import datetime
In [50]:today = datetime.date.today()
In [51]:today
Out[51]: datetime.date(2016, 8, 14)

In [52]:first = datetime.date(day=1,month=today.month,year=today.year)
In [53]:first
Out[53]: datetime.date(2016, 8, 1)

In [54]:lastMonth = first-datetime.timedelta(days=1)
In [55]:lastMonth
Out[55]: datetime.date(2016, 7, 31)

3 关系之间的转换 Datetime / String / timestamp / time tuple

3.1datetime <=> string

3.1.1 datetime -> string

In [56]:import datetime

In [57]:datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
Out[57]: '2016-08-14 17:26:42'

3.1.2 string -> datetime

In [72]:import datetime
In [73]:datetime.datetime.strptime("2016-08-14 12:35:57","%Y-%m-%d %H:%M:%S")
Out[73]: datetime.datetime(2016, 8, 14, 12, 35, 57)

3.2 datetime <=> timetuple

3.2.1 datetime -> timetuple

In [74]:import datetime
In [75]:datetime.datetime.now().timetuple()
Out[75]: time.struct_time(tm_year=2016, tm_mon=8, tm_mday=14, tm_hour=17, 
       tm_min=31, tm_sec=58, tm_wday=6, tm_yday=227, tm_isdst=-1)

3.3 datetime <=> date

3.3.1 datetime -> date

In [76]:import datetime
In [77]:datetime.datetime.now().date()
Out[77]: datetime.date(2016, 8, 14)

3.3.2 datetime -> date

In [78]:import datetime
In [79]:datetime.date.today()
Out[79]: datetime.date(2016, 8, 14)

In [80]:today = datetime.date.today()
today
Out[80]: datetime.date(2016, 8, 14)

In [81]:datetime.datetime.combine(today,datetime.time())
Out[81]: datetime.datetime(2016, 8, 14, 0, 0)

In [82]:datetime.datetime.combine(today,datetime.time.min)
Out[82]: datetime.datetime(2016, 8, 14, 0, 0)

3.4 datetime <=> timestamp

3.4.1datetime -> timestamp

In [83]:import datetime
In [84]:now = datetime.datetime.now()
In [85]:now
Out[85]: datetime.datetime(2016, 8, 14, 17, 40, 44, 757000)
In [86]:timestamp = time.mktime(now.timetuple())
In [87]:timestamp
Out[87]: 1471167644.0

3.4.2 timestamp -> datetime

In [88]:import datetime
In [89]:datetime.datetime.fromtimestamp(1421077403.0)
Out[89]: datetime.datetime(2015, 1, 12, 23, 43, 23)

学习内容来自网站

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350

推荐阅读更多精彩内容