python-关于时间处理的知识

记录关于python及时间的知识,不定时更新....

-------------------------------------------------------------------------------------

什么是时间类型?

时间类型<class 'datetime.datetime'>

对python而言,时间类型是datetime模块中datetime类的实例。

我们可以运算这个实例,得到我们希望的数据.

例如django的ORM可以直接把这个类型作为参数存入数据库

通过加减时间增量类型得到一个未来的或者历史的时间

从时间戳得到一个时间类型

...

-------------------------------------------------------------------------------------

什么是时间增量类型?

时间增量类型<class 'datetime.timedelta'>

时间增量类型是datetime.timedelta类的实例

它代表的是时间长度,例如5秒钟,1分钟,1天,5分3秒.而不是像5点,3月2日这样的时间点.

时间类型-时间增量类型=时间类型

时间类型-时间类型=时间增量类型

对应举例:

(5月2日 5点4分) 减去 (1天) 等于(5月1日 5点4分)

(5月2日 5点4分) 减去 (5月1日 5点4分) 等于(1天)

-------------------------------------------------------------------------------------

什么是时间戳?

时间戳是一串float类型的数字

它代表从象征计算机诞生的时间点到某一个时间点的秒数。

计算机诞生象征时间:1970年01月01日00时00分00秒

-------------------------------------------------------------------------------------

怎么获得当前时间戳?

通过time模块的time方法

import time


now_timestamp = time.time()
print(now_timestamp)           # 1548554022.7956614
print(type(now_timestamp))     # <class 'float'>

-------------------------------------------------------------------------------------

怎么把时间戳转化为时间格式?

代码里出现的未定义变量假设来自上文同名变量(下同)

import datetime


now_time_obj = datetime.datetime.fromtimestamp(now_timestamp)
print(now_time_obj)         # 2019-01-27 10:30:04.136475
print(type(now_time_obj))   #<class 'datetime.datetime'>

-------------------------------------------------------------------------------------

怎么把时间格式转化为时间戳?

now_time_tuple=now_time_obj.timetuple()
print(now_time_tuple)    # time.struct_time(tm_year=2019,......, tm_isdst=-1)
print(type(now_time_tuple))    # <class 'time.struct_time'>
now_timestamp=time.mktime(now_time_tuple)
print(now_timestamp)    # 1548554593.0
print(type(now_timestamp))    # <class 'float'>

-------------------------------------------------------------------------------------

怎么使用时间增量?

print('-' * 30)
now_time_obj=datetime.datetime.now()
print(now_time_obj)
timedelta_obj = datetime.timedelta(minutes=5, hours=1,)
print(timedelta_obj)
print(type(timedelta_obj))
new_time_obj=now_time_obj+timedelta_obj
print(new_time_obj)
print('-' * 30)

结果:

可以看到一个时间类型加上一个时间增量得到了一个新的时间类型

相应的,两个时间类型进行减运算亦会得到一个时间增量类型的实例。

-------------------------------------------------------------------------------------

怎么把时间类型转化为自定义的字符串?

now_time_str_1 = now_time_obj.strftime('%Y年%m月%d日%H点%M分%S秒')
print(now_time_str_1) # 2019年01月27日10点17分08秒
now_time_str_2 = datetime.datetime.strftime(now_time_obj,'%Y年%m月%d日%H点%M分%S秒')
print(now_time_str_2) # 2019年01月27日10点17分08秒

可以看到,通过局部的方法以及全局的方法都可以做到这一点.

-------------------------------------------------------------------------------------

怎么把自定义的字符串转化为时间类型?

time_obj=datetime.datetime.strptime(now_time_str_2, '%Y年%m月%d日%H点%M分%S秒')
print(time_obj)  # 2019-01-27 10:20:56
print(type(time_obj)) # <class 'datetime.datetime'>

-------------------------------------------------------------------------------------

怎么得到今天的时间?

today=datetime.date.today()

怎么得到今天0点的时间对象

today_start=datetime.datetime(today.year, today.month, today.day, 0, 0, 0)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值