查看原文
其他

Python之time模块详解

徐露露 Stata and Python数据分析 2022-03-15

暑期Stata培训班招生啦!!!接力线上的网课培训,我们在今夏又开始新一轮的线下培训啦!8月4日至12日,爬虫俱乐部期待与您的相遇!培训具体内容详见推文《暑期Stata编程技术定制培训班》

有问题,不要怕!点击推文底部“阅读原文”下载爬虫俱乐部用户问题登记表并按要求填写后发送至邮箱statatraining@163.com,我们会及时为您解答哟~

喜大普奔~爬虫俱乐部的github主站正式上线了!我们的网站地址是:https://stata-club.github.io,粉丝们可以通过该网站访问过去的推文哟~

好消息:爬虫俱乐部隆重推出数据定制及处理业务啦,您有任何网页数据获取及处理方面的难题,请发邮件至我们邮箱statatraining@163.com,届时会有俱乐部资深高级会员为您排忧解难!

在平常的代码编写中,我们常常需要和不同格式的时间打交道,在Python中,与时间处理相关的模块包括:timedatetime以及calendar。其中我们最常使用到的就是time模块了,所以这篇推文,小编将给大家好好讲解讲解time模块。

在time模块中时间表示的格式主要有三种:

  1. timestamp(时间戳),时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量,如:1528116025.5841389,它表示的就是2018年6月4日10:40:25距离1970年1月1日00:00:00的总秒数。

  2. struct_time(时间元组),它由九个元素组成,如:time.struct_time(tm_year=2018, tm_mon=5, tm_mday=22, tm_hour=15, tm_min=35, tm_sec=51, tm_wday=1, tm_yday=142, tm_isdst=-1)

  3. format string(格式化时间),前面两个时间表示的格式可能对电脑来说,较易读懂,但是对于我们人类来说,却很复杂,因此格式化之后可以使时间更具可读性,它不仅有固定格式还有自定义格式。


下图给出的就是三个时间格式的转换图:

接下来我们就根据上面给出的图进行实例转换操作。

timestamp转struct_time

import time  #导入时间模块
print(time.time()) #得到当前的时间戳
print(time.localtime(time.time())) #得到本地时间
print(time.gmtime(time.time())) #得到格林威治(GMT)时间

得到:

在这里,值得注意的是localtime函数和gmtime函数之间的区别在于时区的不同,localtime返回的是当前我国东八区的值,gmtime返回的是当前格林威治(GMT)的值。

struct_time转timestamp

print(time.mktime(time.localtime()))

struct_time转回timestamp则更为简单,只需要用上式中的mktime函数即可,结果如下图:

struct_time转format string

print(time.strftime("%Y-%m-%d %X",time.localtime()))

或者你可以自己再设置另一个格式的时间:

print(time.strftime("%B %d %Y",time.localtime()))

其中%Y表示完整的年份(000-9999),%m表示月份(01-12),%d表示月内中的一天(0-31),%X表示当地相应的时间表示,%B表示本地完整月份名称。其余时间日期格式化符号请查看推文最后附上的表格。

format string转struct_time

print(time.strptime('2018-06-04 16:37:06', '%Y-%m-%d %X'))

那么可能有人会问了,format stringtimestamp之间不能直接转换吗?其实是可以的,但是timestamp或者struct_time只能转化为满足固定格式(%a %b %d %H:%M:%S %Y)的format string

三者之间的转换关系如下图所示:

struct_time,timestamp转固定格式的format string

print(time.ctime(time.time())) print(time.asctime(time.localtime()))

得到:

附录

表1-Time模块中的时间日期格式化符号及其对应的含义

注:此推文中的图片及封面(除操作部分的)均来源于网络!如有雷同,纯属巧合!

以上就是今天给大家分享的内容了,说得好就赏个铜板呗!有钱的捧个钱场,有人的捧个人场~。另外,我们开通了苹果手机打赏通道,只要扫描下方的二维码,就可以打赏啦!

应广大粉丝要求,爬虫俱乐部的推文公众号打赏功能可以开发票啦,累计打赏超过1000元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您更贴心的小爬虫。第一批发票已经寄到各位小主的手中,大家快来给小爬虫打赏呀~

                                   

             文字编辑:何雪泽

  技术总编:刘贝贝


往期推文推荐:

1.爬虫俱乐部新版块--和我们一起学习Python

2.hello,MySQL--Stata连接MySQL数据库

3.hello,MySQL--odbcload读取MySQL数据

4.再爬俱乐部网站,推文目录大放送!

5.用Stata生成二维码—我的心思你来扫

6.Mata中的数据导出至Excel

7.谈谈图形中坐标设置的技巧

8.如何输出某个关键词在字符串中的所有位置?

9.想看什么书?Stata君帮你寻!——爬取中南财大图书馆书目信息

10.爬虫俱乐部隆重推出网上直播课程第一季




关于我们

微信公众号“爬虫俱乐部”分享实用的stata命令,欢迎转载、打赏。爬虫俱乐部是由李春涛教授领导下的研究生及本科生组成的大数据分析和数据挖掘团队。

此外,欢迎大家踊跃投稿,介绍一些关于stata的数据处理和分析技巧。

投稿邮箱:statatraining@163.com

投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿”+“推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到关于stata分析数据的问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存