把python类型变成相应的excel时间类型_python中的时间类型

时间类型是编程语言中经常使用到的,且在日常生活中也常用到。本文将介绍几种时间库的常用方法,以满足日常编程的需要,主要涉及的库有: timedatetime中的time类型。
1、time库

time库是python的内置库,无需安装,在使用的时候直接import time即可,主要方法有:(1)获取时间戳

import timeprint('获取时间戳:\n', time.time())#指定日期获取时间戳,使用的方法后面会见到times = time.strptime('2021/01/23', '%Y/%m/%d') #将指定时间转成struct_time类型print('指定日期转换成时间戳:\n', time.mktime(times)) #使用mktime获取时间戳,传入struct_time类型
获取时间戳:1611379248.227833指定日期转换成时间戳:1611331200.0
(2)localtime()方法

localtime()方法可以将时间戳转换为当前时区的struct_time类型,如果不提供参数,以当前时间为准;如果提供则按照提供的为准。

print('当前时区的struct_time类型:\n', time.localtime())print('指定时区的struct_time类型:\n', time.localtime(time.time()))
当前时区的struct_time类型:time.struct_time(tm_year=2021, tm_mon=1, tm_mday=23, tm_hour=13, tm_min=40, tm_sec=1, tm_wday=5, tm_yday=23, tm_isdst=0)指定时区的struct_time类型:time.struct_time(tm_year=2021, tm_mon=1, tm_mday=23, tm_hour=13, tm_min=40, tm_sec=1, tm_wday=5, tm_yday=23, tm_isdst=0)
(3)时间类型转换成字符串

利用了strftime(format, [t])方法,通过指定输出格式和(2)中的struct_time类型,可以返回一个指定格式的字符串时间。

print('格式化输出当前时间:\n', time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()))
格式化输出当前时间:2021-01-23 13:45:37
time库的常用格式化字符表
格式化符描述
%a星期的简写,星期一为Mon
%A星期的全写,星期一为Monday
%b月份的简写,四月为Apr
%B月份的全写,四月为April
%c日期时间的字符串表示,Sat Jan 23 13:52:08 2021
%d某一日是在这个月的第几天
%f微秒,范围[0, 999999]
%H24小时制
%I12小时制
%j某一日是在这一年的第几天
%m月份
%M分钟
%pAM或者PM
%S
%U某一周是这一年的第几周,周日作为周的第一天
%w今天在这周的天数
%W某一周是这一年的第几周,周一作为周的第一天
%x日期字符串,01/23/2
%X时间字符串,14:00:57
%y两个数字表示的年份
%Y四个数字表示的年份

(4)字符串转化成时间格式

与(3)操作相反,字符串转换成时间格式用到了 time.strptime(日期,格式)方法。
times = time.strptime('2021/01/23', '%Y/%m/%d')print('字符串转strut_time对象:\n', times)
字符串转strut_time对象:time.struct_time(tm_year=2021, tm_mon=1, tm_mday=23, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=23, tm_isdst=-1
(5)线程休眠

线程休眠用到了time.sleep(秒数),表示程序暂停多少秒后继续运行,在网络爬虫中很常见。


2、datetime库

datetime库是专门用来处理时间的库,常用的有3个类:

datetime.date:年月日构成的日期对象

datetime.datetime:既包含日期,又包含时间

datetime.timedelta:时间间隔对象,计算时间

2.1 datetime.date类 (1)创建date对象

创建date对象有两个方法:(1)创建今天的date使用datetime.date.today()方法;(2)创建指定日期,datetime.date(年,月,日)。

from datetime import dateprint('创建今天的date对象:\n', date.today())print('创建指定日期的date对象:\n', date(2020, 1, 23))
创建今天的date对象:2021-01-23创建指定日期的date对象:2020-01-23
(2)date对象转字符串

date转字符串利用date对象的strftime(format)方法,格式说明符同time库一致;

date1 = date(2020, 1, 23)print('格式化输出时间:\n', date1.strftime('%Y-%m-%d'))
格式化输出时间:2020-01-23
(3)转成struct_time格式

使用date对象的timetuple()方法,可以传给time.mktime()方法,实现两者的连接。

date1 = date(2020, 1, 23)print('转成struct_time格式:\n', date1.timetuple())
转成struct_time格式:time.struct_time(tm_year=2020, tm_mon=1, tm_mday=23, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=23, tm_isdst=-1)
(5)将时间戳转成date对象

此操作与(3)互逆,可以实现从time库到datetime库的转换。

time1 = time.time()print('时间戳转成date对象:\n', date.fromtimestamp(time1))
时间戳转成date对象:2021-01-23
(6)date的三种属性

年、月、日是date重要的属性,方法有括号,属性没有括号;获取年月日分别对应year,month,day。

date1 = date(2020, 1, 23)print('年份:\n', date1.year)-----结果-----年份:23
(7)替换date对象中的年、月、日

替换date对象的年、月、日用到了date1.replace(year, month, day)方法,如果不填入相应参数,表示对应项不替换。

date1 = date(2020, 1, 23)print('替换年、月份:\n', date1.replace(2013, 8))-----结果-----替换年、月份:2013-08-23
2.2 datetime类(1)创建datetime对象

创建datetime对象与date一样,有两个方法:获取当前的datetime对象,利用datetime.now()方法;获取指定时间的datetime对象,利用datetime(年,月,日,时,分,秒)方法。

from datetime import datetimeprint('获取现在的datetime对象:\n', datetime.now())print('获取指定时间的datetime对象:\n', datetime(2000, 1, 12, 12, 11, 35))
获取现在的datetime对象:2021-01-23 19:28:52.769342获取指定时间的datetime对象:2000-01-12 12:11:35

特别的,可以通过datetime对象直接创建date对象,利用datetime.date()直接创建,这是很重要的特性。

print('根据datetime对象创建date对象:\n', datetime.now().date())-----结果-----根据datetime对象创建date对象:2021-01-23
(2)datetime对象与字符串的互相转化

datetime对象与字符串的互相转化又是datetime的一个重要特性。

datetime1 = datetime.now()time_str1 = '2000/03/06 12:35:46'print('datetime对象转字符串:\n', datetime.strftime(datetime1, '%Y-%m-%d %H:%M:%S'))print('datetime对象转字符串:\n', datetime.strftime(datetime1, '%Y-%m-%d')) #注意,此时仍属于datetime对象而不是date对象print('字符串转datetime对象:\n', datetime.strptime(time_str1, '%Y/%m/%d %H:%M:%S'))

根据(1)可知,字符串转date对象,可以先转为datetime,再转为date。

注意:datetime类型可以转为date,而date不可转为datetime

(3)datetime转struct_time对象

与date类转struct_time对象一样,用到了timetuple()方法,不再赘述。

(4)时间戳与datetime对象的互转

时间戳转datetime对象,运用datetime.fromtimestamp()方法;datetime转时间戳,先把datetime转struct_time对象,再利用time.mktime()方法转换,与date类中相似。

time1 = time.time()print('时间戳转datetime对象:\n', datetime.fromtimestamp(time1))-----结果-----时间戳转datetime对象:2021-01-23 19:51:57.837723
(5)datetime的几个属性与替换

与date类类似,datetime增加了hour、minute、second属性,同样通过replace对datetime进行替换,使用方法与date一样。

2.3 timedelta类

timedelta类是一个重要的类,可以对日期进行计算。

语法:datetime1 + timedelta(weeks, days, hours, minutes, seconds, milliseconds, microseconds),进行加减操作。

from datetime import timedeltanow = datetime.now()new_day = now + timedelta(days = -50)print('50天前:\n', new_day)-----结果-----50天前:2020-12-04 20:10:50.746098
获取从今天往后500天的年月日的字符串date_ls = [(now+timedelta(days=i)).date().strftime('%Y-%m-%d') for i in range(500)]print(date_ls)-----结果-----['2021-01-23', '2021-01-24', '2021-01-25', '2021-01-26', '2021-01-27',...

以上就是python中time类型的主要内容,掌握各种日期的转换方法对于理解time类型十分重要,因为很多数据都是关于时间序列的。

如果觉得本文有用,可以关注公众号——python数据分析实践,会不定期更新文章。

8e4f8d594704d8a79ad4b931b1220b61.png

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值