首页 > 技术文章 > datetime 使用

qxh-beijing2016 2019-12-31 17:05 原文

datetime是一个关于时间的库,主要包含的类有:

  date    日期对象,常用的属性有year,month,day

  time  时间对象,hour,minute,second,毫秒

  datetime    日期时间对象,常用的属性有hour,minute,second,microsecond

  timedelta    时间间隔,即两个时间点之间的长度

日期(date):

 
import datetime
date = datetime.date(2018, 8, 23)
print(date)

-->
2018-8-23
 

 

时间(time):

 
import datetime
time = datetime.time()
print(time)

-->
00:00:00    # 默认值为00

import datetime
time = datetime.time(18, 55, 35)
print(time)

-->
18:55:35

import datetime
time = datetime.time(18, 55, 35, 2000)
print(time)

-->
18:55:35.002000
 

 

 

日期时间(datetime):

 
import datetime
datetime = datetime.datetime(2018, 8, 23, 18, 59, 55)
print(datetime)

-->
2018-08-23 18:59:55
 

 

时间间隔(datedelta):

 
import datetime
dlt = datetime.timedelta(hours=5)
print(dlt)

-->
5:00:00

默认值:
days=0, # 天
seconds=0,  # 秒
microseconds=0, # 微秒
milliseconds=0, # 毫秒
minutes=0,  # 分钟
hours=0,  # 小时
weeks=0 #
 

 

now(返回当前系统时间):

 
import datetime
now = datetime.datetime.now()
print(now)

-->
2018-08-23 19:10:26.886975
 

 

格林威治时间:

  表示从1970年1月1日00:00:00 开始至今的时间间隔

 
import datetime
utc = datetime.datetime.utcnow()
print(utc)

-->
2018-08-23 11:24:26.799106
 

 

东八区时间(北京时间):

 
# 现获取格林威治(本初子午线时间)的当前时间
import datetime
utc = datetime.datetime.utcnow()
# 8小时时差
dtl = datetime.timedelta(hours=8)
now = utc + dtl
print(now)

-->
2018-08-23 19:38:01.218821
 

 

解析时间(strptime):按一定的格式输出时间(字符串时间转化为datetime格式)

 
import datetime
strp = datetime.datetime.strptime('Aug-23-18 19:51', '%b-%d-%y %H:%M')
print(strp)

-->
2018-08-23 19:51:00


当前时间
  import datetime
  now = datetime.datetime.now()
  strf = now.strftime('%Y-%m-%d %H:%M:%S')
  print(strf)
 

可在电脑设置里面查看时间格式

 

格式化时间(strftime):完全自定义时间格式(将时间格式、转化为自定字符串格式)

 
import datetime
now = datetime.datetime.now()
strf = now.strftime('%d-%m-%Y %H:%M:%S')
print(strf)

-->
23-08-2018 20:21:24   
时间格式怎么改都行
 

 

关于时间格式的汇总:

fromtimestamp(t)

  将时间戳转换成易读的日期时间

  t:时间戳浮点数

 
import time
import datetime

# 获取当前时间的时间戳
t = time.time()    # 1535275338.445392
# 将时间戳转换成易读格式的时间
time = datetime.datetime.fromtimestamp(t)
print(time)

-->
2018-08-26 17:22:18.445392
 

 

timestamp(t)

  将日期时间转换成时间戳浮点数

  t:日期时间格式(易读的时间格式)

import datetime
t = datetime.datetime.now()
print(t)
time = datetime.datetime.timestamp(t)
print(time)

-->
2018-08-26 17:33:26.657776
1535276006.657776

 

判断当前时间是否在某一时间段内

import datetime
#时间范围 start_t = datetime.datetime.strptime(p_every["start_time"], '%Y-%m-%d %H:%M:%S')
end_t = datetime.datetime.strptime(p_every['end_time'], '%Y-%m-%d %H:%M:%S')
#当前时间
now_t = datetime.datetime.now()
if now_t > start_t and now_t < end_t:
# 判断当前时间是否在范围时间内 if now_time > start_time and now_time<end_time:

 

detester = '2017-01-01 12'
date = datetime.datetime.strptime(detester,'%Y-%m-%d %H')#把时间格式字符串转换成时间戳

 

转载:https://www.cnblogs.com/pywjh/p/9526094.html

推荐阅读