datetime模块

###使用频率特别高

from datetime import datetime,timedelta

# 拿到的是"时间对象"
print(datetime.now())#2019-03-20 15:23:32.883745

# 将时间对象转换为时间戳 后面.是毫秒
f = datetime.now() 
s = datetime.timestamp(f)
print(s)#1553066612.883745
# 将时间戳转为时间对象 print(datetime.fromtimestamp(s))#2019-03-20 15:23:32.883745 # 将字符串转换成时间对象 s = '2018-zz-20' f = datetime.strptime(s,'%Y-%m-%d') print(f,type(f))#2018-zz-20 00:00:00 <class 'datetime.datetime'>
# 将时间对象转换成字符串,注意跟time的格式不一样! f1 = datetime.now() s1 = datetime.strftime(f,'%Y-%m-%d') print(s1,type(s1))#2018-zz-20 <class 'str'> ### 做运算的是“时间对象” print(datetime.now() - timedelta(hours=10)) #2019-03-20 05:26:16.183136 print(datetime.now() - timedelta(days=1)) #2019-03-19 15:26:16.183136

时间运算相关

import datetime


# 指定时间
print(datetime.datetime(2017,10,1,12,54,11,871281)) # 2017-10-01 12:54:11.871281

now = datetime.datetime.now()
print(now) # 2020-03-16 20:55:10.457931
# 加5天
day5 = now + datetime.timedelta(days=5) 
print(day5) # 2020-03-21 20:55:10.457931

# 时间替换
f = now.replace(year=2222,month=3,day=5)
print(f) # 2222-03-05 20:57:28.324392

datetime日期类型的比较

from datetime import datetime


# 必须是字符串类型
NOW_STR = datetime.strftime(datetime.now(),"%Y-%m-%d %X")       
user_exp_time = "2020-03-14 00:00:00"


# 转换为datetime类型再比较
date_now = datetime.strptime(NOW_STR,"%Y-%m-%d %X")
date_user = datetime.strptime(user_exp_time,"%Y-%m-%d %X")

print(date_now,type(date_now))
print(date_user,type(date_user))
"""
2020-04-09 10:07:50 <class 'datetime.datetime'>
2020-03-14 00:00:00 <class 'datetime.datetime'>
"""

print(date_now > date_user) # True

 date.today

from datetime import date


today = date.today()
print(today,type(today)) # 2019-02-22 <class 'datetime.date'>

today_str = today.strftime("%Y-%m-%d")
print(today_str,type(today_str)) # 2019-02-22 <class 'str'>

日期格式化

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

可以看到,这里的格式化的月份和月份中的天数,默认是2位数的,也就是说,如果小于10,就会显示前缀0,如02月09日

日期格式化之去掉前导0

datetime模块格式化以及去掉前导0的操作说明

 

posted on 2019-05-20 22:27  江湖乄夜雨  阅读(112)  评论(0编辑  收藏  举报