化身天使的博客

python学习笔记附录一:时间操作

import datetime

t = datetime.date.today()        #获取年月日,类型date

t = datetime.datetime.now()      #获取完整当前时间,类型date

t = datetime.datetime.utfnow()   #获取utf时间,Mongodb使用

t.strftime('%Y-%m-%d  %H:%M %S ')        #把时间或时间戳类型转为字符串,并指定格式

t.year                       #输出指定时间的年份,类型int

t.hour                      #输出几点, 24小时制, 类型int

month/day/minute/second       #月日分秒

 

获取周几

方法一:

time.strftime('%w')                                #time方法,少打几个字,需要import time

方法二:

datetime.datetime.now().strftime('%w')    

 

两种方法结果一样,返回类型为字符串,‘1’周一  ‘6’周六  ‘0’周日

指定周几, 获取当天的日期

#例:输入7, 获取本周周日的日期, 1本周一,8下周一, -6上周一,0上周日
#返回值类型date , 格式2022-03-13
def week_to_day(week):
    now = datetime.date.today()
    w = int(now.strftime('%w'))  #获取今天是周几
    if w==0:
        w = 7
    day = now - datetime.timedelta(w-week)
    return day
    

日期加减(往前往后推算几天或几小时之类的)

t = datetime.datetime.now()      #获取当前日期

t -  datetime.timedelta(1)          #减一天

t + datetime.timedelta(1)            #加一天

t- datetime.timedelta(hours=1)       #减一小时,类似的,年月日时分秒都可以减years/months/minutes/seconds

 

datetime.timedelta(1)是datetime.timedelta(days=1)的简写,days为缺省值

 

日期减日期

 

t = datetime1 - datetime2   #两个datetime类型时期相减后是timedelta类型

t.days          #获取以上两个日期相差天数

t.hours       

 

 

字符串转日期(datetime类型)

s = "2021-07-03T00:00:16"

t = datetime.date(2021, 1, 1)      #得到2021-01-01

t = datetime.datetime(2021, 1, 1)      #得到2021-01-01 00:00:00

t = datetime.datetime.strptime(s, '%Y-%m-%dT%H:%M:%S')

 

时间戳

1.获取当前时间戳

import time

time.time()

2.时间戳转日期(datetime类型)

datetime.datetime.fromtimestamp(时间戳)

time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(时间戳))

3.日期(datetime类型)转时间戳

 int(时间类型.timestamp())

 

程序休眠

import time

time.sleep(3)           #休眠3秒再执行

mongodb的id转日期

    from bson import ObjectId
    oid = ObjectId('5b6907878e3f488d10cd2f36')
    timestamp = time.mktime(oid.generation_time.timetuple()) #时间戳
    time_date = datetime.datetime.fromtimestamp(timestamp)  #日期类型
    time_str = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(timestamp))  #字符串日期

strftime参数

strftime('%Y-%m-%d  %H:%M %S ')   #得到年月日时分秒

%y 两位数的年份表示(00-99)

%Y   年(000-9999)

%m  月(01-12)

%d   日(0-31)

%H 24时(0-23)

%M  分(00-59)

%S   秒(00-59)

%a 本地简化星期名称

%A 本地完整星期名称

%b 本地简化的月份名称

%B 本地完整的月份名称

%c 本地相应的日期表示和时间表示

%I 12小时制小时数(01-12)

%j 年内的一天(001-366)

%p 本地A.M.或P.M.的等价符

%U 一年中的星期数(00-53)星期天为星期的开始

%w 星期(0-6),星期天为星期的开始

%W 一年中的星期数(00-53)星期一为星期的开始

%x 本地相应的日期表示

%X 本地相应的时间表示

%Z 当前时区的名称

%% %号本身

posted @ 2021-08-07 22:59  化身天使  阅读(143)  评论(0)    收藏  举报