Python Time和DateTime

1.小知识:

time 是更接近于系统层面是围绕Unix Timestamp进行得,现在系统时间都是以1970年1月1日来开始算时分秒,在32位计算机中,能表示得最大的二进制数值位2的23次方-1,也就是2147483648,在365天中总秒数为:31536000,用最大值/一年总秒数 = 年数,可以得到68年,1970+68 = 2038,也就是说到2038年,就会达到最大值,那时候 表示的二进制位10000000000000000000000000000000,也就是1901年12月13日,会导致时间回归出现问题,后来出现了64位系统,二进制能表示更大的值了从而解决了这个问题,所以32位机上time方法Unix限制了时间为1970~2038年这个时间段,所以最好使用DateTime来比较, DateTime在time方法上包了一层从而无这个限制

 


 

2.DateTime的使用

import datetime
import time
datetime.datetime.now()
#当前datetime类型的时间:2020-07-29 14:28:10.719062 time.time() #当前时间戳

 

2.1 将datetime类型时间转换为字符串

a = datetime.datetime.now()

print(a.strftime('%Y-%m-%d %H:%M:%S'))   #输出格式为:2020-07-29 14:31:23 ,strftime()方法是将datetime类型的数据转为字符串,但要指定字符串输出样式,就是格式化样式

 

2.2 将字符串转换为datetime类型

time_str = '2020-07-29 14:31:23'

print(datetime.datetime.strptime(time_str,'%Y-%m-%d %H:%M:%S'))  #输出为:2020-07-29 14:31:23 类型为datetime,strptime()方法是将字符串时间格式的数据转换为datetime类型数据,

 

 

2.3 获取时间戳转换字符串(注:datetime没有直接获取时间戳方法)

 

 

#获取时间戳(获取时间戳需要用到time模块)

import
time a = time.time() #--->1596009778.841462 #转换为元组或者time.struct_time类型 a1 = time.localtime(a) #-->struct_time类型:time.struct_time(tm_year=2020, tm_mon=7, tm_mday=29, tm_hour=16, tm_min=2, tm_sec=58, tm_wday=2, tm_yday=211, tm_isdst=0) #转换为格式化字符串类型 time.strftime('%Y-%m-%d %H%M%S', a1)#--->2020-07-29 160258,注意stftime该方法和datetime方法不是同一方法,该方法参数必须为元组或者struct_time类型

 

 

2.4 将字符串转换为时间戳

a = '2020-07-29 16:02:58'

a1 = time.strptime(a,'%Y-%m-%d %H:%M:%S') 

#--->struct_time类型: time.struct_time(tm_year=2020, tm_mon=7, tm_mday=29, tm_hour=16, tm_min=2, tm_sec=58, tm_wday=2, tm_yday=211, tm_isdst=-1) time.mktime(a1)#--->转换为时间戳:1596009778.0

 

 

 

 

    

  

 

 

    

  

 

 

 

posted @ 2020-07-29 15:24  梦想呱  阅读(93)  评论(0)    收藏  举报