【python】 time模块和datetime模块详解 【转】

一、time模块

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

  a、timestamp时间戳,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量

  b、struct_time时间元组,共有九个元素组。

  c、format time 格式化时间,已格式化的结构使时间更具可读性。包括自定义格式和固定格式。

1、时间格式转换图:

2、主要time生成方法和time格式转换方法实例:

 1 import time
 2 
 3 #【生成timestamp时间戳】
 4 print(time.time())
 5 print(time.mktime(time.localtime())) #struct_time to timestamp
 6 print('-'*20)
 7 
 8 # 【生成struct_time时间元组】
 9 # timestamp to struct_time 【本地时间】
10 print(time.localtime())
11 print(time.localtime(time.time()))
12 print('-'*20)
13 # timestamp to struct_time 【格林威治时间】
14 print(time.gmtime())
15 print(time.gmtime(time.time()))
16 print('-'*20)
17 #format_time(格式化时间) to struct_time(时间元组)
18 print(time.strptime('2014-11-11', '%Y-%m-%d'))
19 print(time.strptime('2011-05-05 16:37:06', '%Y-%m-%d %X'))
20 print('-'*20)

 

struct_time元组元素结构

属性                            值
tm_year(年)                  比如2011 
tm_mon(月)                   1 - 12
tm_mday(日)                  1 - 31
tm_hour(时)                  0 - 23
tm_min(分)                   0 - 59
tm_sec(秒)                   0 - 61
tm_wday(weekday)             0 - 6(0表示周日)
tm_yday(一年中的第几天)        1 - 366
tm_isdst(是否是夏令时)        默认为-1

 

format time结构化表示

格式含义
%a本地(locale)简化星期名称
%A本地完整星期名称
%b本地简化月份名称
%B本地完整月份名称
%c本地相应的日期和时间表示
%d一个月中的第几天(01 - 31)
%H一天中的第几个小时(24小时制,00 - 23)
%I第几个小时(12小时制,01 - 12)
%j一年中的第几天(001 - 366)
%m月份(01 - 12)
%M分钟数(00 - 59)
%p本地am或者pm的相应符
%S秒(01 - 61)
%U一年中的星期数。(00 - 53星期天是一个星期的开始。)第一个星期天之前的所有天数都放在第0周。
%w一个星期中的第几天(0 - 6,0是星期天)
%W和%U基本相同,不同的是%W以星期一为一个星期的开始。
%x本地相应日期
%X本地相应时间
%y去掉世纪的年份(00 - 99)
%Y完整的年份
%Z时区的名字(如果不存在为空字符)
%%‘%’字符

 

常见结构化时间组合:

print time.strftime("%Y-%m-%d %X")
#2018-9-5 14:50:13

 

 3、time加减

1 #timestamp加减单位以秒为单位
2 import time
3 t1 = time.time()
4 t2=t1+10
5 
6 print time.ctime(t1)#Wed Oct 26 21:15:30 2018
7 print time.ctime(t2)

 

二、datetime模块

datatime模块重新封装了time模块,提供更多接口,提供的类有:date,time,datetime,timedelta,tzinfo。

1、date类

 1 from  datetime import *
 2 import time
 3 # 【静态方法和字段】
 4 print(date.max) #对象所能表示的最大、最小日期
 5 print(date.min)
 6 print(date.resolution)#对象表示日期的最小单位。这里是天
 7 print(date.today()) #返回一个表示当前本地日期的date对象
 8 print(date.fromtimestamp(time.time())) #根据给定的时间戮,返回一个date对象;
 9 
10 # 【方法和属性】
11 now = date(2018, 9, 5)
12 tomorrow = now.replace(day = 27)
13 
14 print(now.replace(2012,8,8)) #生成一个新的日期对象,用参数指定的年,月,日代替原有对象中的属性。
15 print(now,tomorrow)
16 print('-'*20)
17 
18 print(now.timetuple()) #返回日期对应的time.struct_time对象;
19 print('-'*20)
20 
21 print(now.weekday()) #返回weekday,如果是星期一,返回0;如果是星期2,返回1,以此类推;
22 print(now.isoweekday()) #返回weekday,如果是星期一,返回1;如果是星期2,返回2,以此类推;
23 print('-'*20)
24 
25 print(now.isocalendar()) #返回格式如(year,month,day)的元组;
26 print(now.isoformat()) #返回格式如'YYYY-MM-DD’的字符串;
27 print(now.strftime("%Y-%m-%d"))

 

2、time类

1 from  datetime import *
2 tm = time(23,46,10)
3 print(tm)
4 print('hour: %d, minute: %d, second: %d, microsecond: %d' % (tm.hour, tm.minute, tm.second, tm.microsecond))
5 tm1 = tm.replace(hour=20)
6 print('tm1:', tm1)
7 print('isoformat:', tm.isoformat())
8 print('strftime', tm.strftime("%X"))

 

3、datetime类

 1 # 静态方法和字段
 2 from  datetime import *
 3 import time
 4 
 5 print('datetime.max:', datetime.max)
 6 print('datetime.min:', datetime.min)
 7 print('datetime.resolution:', datetime.resolution)
 8 print('-'*20)
 9 print('today():', datetime.today())
10 print('now():', datetime.now())
11 print('utcnow():', datetime.utcnow())
12 print('-'*20)
13 print('fromtimestamp(tmstmp):', datetime.fromtimestamp(time.time()))
14 print('utcfromtimestamp(tmstmp):', datetime.utcfromtimestamp(time.time()))
15 
16 # 方法和属性
17 dt=datetime.now()#datetime对象
18 print(dt.date())
19 print(dt.time())
20 print(dt.replace())
21 print('-'*20)
22 print(dt.timetuple())
23 print(dt.utctimetuple())
24 print('-'*20)
25 print(dt.toordinal())
26 print(dt.weekday())
27 print('-'*20)
28 print(dt.isocalendar())
29 print(dt.ctime())
30 print(dt.strftime)

 

4.timedelta类,时间加减

 1 from  datetime import *
 2 
 3 dt = datetime.now()
 4 
 5 dt1 = dt + timedelta(days=-1)#昨天
 6 dt2 = dt - timedelta(days=1)#昨天
 7 dt3 = dt + timedelta(days=1)#明天
 8 delta_obj = dt3-dt1
 9 
10 print(type(delta_obj),delta_obj)
11 print(delta_obj.days,delta_obj.total_seconds())

 

 5、tzinfo时区类

 1 from datetime import datetime, tzinfo,timedelta
 2 
 3 """
 4 tzinfo是关于时区信息的类
 5 tzinfo是一个抽象类,所以不能直接被实例化
 6 """
 7 class UTC(tzinfo):
 8     def __init__(self,offset = 0):
 9         self._offset = offset
10 
11     def utcoffset(self, dt):
12         return timedelta(hours=self._offset)
13 
14     def tzname(self, dt):
15         return "UTC +%s" % self._offset
16 
17     def dst(self, dt):
18         return timedelta(hours=self._offset)
19 
20 #北京时间
21 beijing = datetime(2011,11,11,0,0,0,tzinfo = UTC(8))
22 print ("beijing time:",beijing)
23 #曼谷时间
24 bangkok = datetime(2011,11,11,0,0,0,tzinfo = UTC(7))
25 print ("bangkok time",bangkok)
26 #北京时间转成曼谷时间
27 print ("beijing-time to bangkok-time:",beijing.astimezone(UTC(7)))
28 
29 #计算时间差时也会考虑时区的问题
30 timespan = beijing - bangkok
31 print ("时差:",timespan)

 

转载于:https://www.cnblogs.com/louis-w/p/9591747.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/537917.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

spring boot Exception in Thread “main” java.lang.classNoFoundException

在客户测试环境部署,通过打包成jar,使用命令 nohup java -jar /usr/local/tomcat/shirencai/ct-peixun-provider.jar –spring.profiles.activestage > /usr/local/tomcat/shirencai/ct-peixun-provider-temp.txt & 报错后来排查以为是内存不够。…

php源码自动识别文本中的链接,自动加载识别文件Auto.php

用于本应用的控制器自动加载类设置&#xff0c;用法如同\CodeIgniter\Config\AutoloadConfig自动加载识别文件:dayrui/App/应用目录/Config/Auto.php语法格式&#xff1a;<?php // 自动加载识别文件return [/*** 命名空间映射关系*/psr4 > [],/*** 类名映射关系*/classm…

如何识别“答非所问”?使用gensim进行文本相似度计算

在文本处理中&#xff0c;比如商品评论挖掘&#xff0c;有时需要了解每个评论分别和商品的描述之间的相似度&#xff0c;以此衡量评论的客观性。 评论和商品描述的相似度越高&#xff0c;说明评论的用语比较官方&#xff0c;不带太多感情色彩&#xff0c;比较注重描述商品的属性…

防抓包重放php,超简单最基本的WEB抓包改包重放的方法

【注意&#xff1a;此文章为博主原创文章&#xff01;转载需注意&#xff0c;请带原文链接&#xff0c;至少也要是txt格式&#xff01;】很多很多刚刚接触的同事问我如何抓包&#xff0c;如果讲用工具可能还涉及什么装证书&#xff0c;熟悉使用工具等等&#xff0c;特别繁琐&am…

mysql查询很慢优化方法1

解决方法&#xff1a; 关联的字段建索引。 具体分析如下&#xff1a;举例&#xff1a; 表格&#xff1a;培训学生表&#xff0c;班级报名表 需求&#xff1a;查询出学生报了哪些班级 两表有个关联字段“CD”&#xff08;学生学号&#xff09;。 视图sql&#xff1a; SELECTt_px…

ubuntu进行apt-get时候出现Package ssh is not available, but is referred to by another package 错误...

今天在ubuntu进行ssh安装的时候&#xff0c;出现如下错误。Reading package lists... Done Building dependency tree... Done Package ssh is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is …

php找出函数定义位置,WordPress如何快速定位PHP函数所在文件位置及代码行号?

有时候我们需要修改别人源码里的代码&#xff0c;却找不到对应的函数放在了哪儿&#xff0c;就可以用使用本文介绍的办法&#xff0c;帮你快速定位函数位置。特别是某些写法不规范的WordPress主题&#xff0c;各种模块&#xff0c;函数到处放&#xff0c;找半天的那种。那么Wor…

微信公众号每次调用接口正确或错误的返回码

原文连接&#xff1a;https://blog.csdn.net/pansanday/article/details/65448868 ----------------------------------------- 公众号每次调用接口时&#xff0c;可能获得正确或错误的返回码&#xff0c;开发者可以根据返回码信息调试接口&#xff0c;排查错误。 全局返回码…

Phoenix:全局索引设计实践

概述 全局索引是Phoenix的重要特性&#xff0c;合理的使用二级索引能降低查询延时&#xff0c;让集群资源得以充分利用。 本文将讲述如何高效的设计和使用索引。 全局索引说明 全局索引的根本是通过单独的HBase表来存储数据表的索引数据。我们通过如下示例看索引数据和主表数据…

php 美颜,怀念以前无滤镜美颜的影视剧

滤镜是为了照片质量更高一些&#xff0c;色彩更真实突出的一种补助工具。自从有了美颜和滤镜后&#xff0c;大家的生活都变成了彩色。开了滤镜美颜&#xff0c;小伙伴们有木有感觉生活水平变高了&#xff1f;但影视剧&#xff0c;好像变成了单色&#xff1f;&#xff01;(注意&…

select2控件动态更新option

原文连接&#xff1a;https://blog.csdn.net/u010784959/article/details/77893674 ----------------------------------------------------------------------------- 根据输入框中内容&#xff0c;动态更新select2组件中option内容 监听输入框内容变化事件&#xff0c;先销…

在Python中定义和使用抽象类的方法

https://www.jb51.net/article/87710.htm 像java一样python也可以定义一个抽象类。 在讲抽象类之前&#xff0c;先说下抽象方法的实现。 抽象方法是基类中定义的方法&#xff0c;但却没有任何实现。在java中&#xff0c;可以把方法申明成一个接口。而在python中实现一个抽象方法…

把 Rational Rose 的图表保存为图片文件

原文连接&#xff1a;https://blog.csdn.net/xiaobing_122613/article/details/56485456 ------------------------------------------------ Rational Rose 本身没有保存为 JPG/GIF 图片格式的功能。 1. 可以通过全选、复制、粘贴可以把图表直接粘贴到打开的 Word 文档里 …

lppl模型 matlab,对LPPL模型的思考

2013-05-10 16:19:29最近&#xff0c;LPPL模型在金融市场中的运用越来越广&#xff0c;LPPL模型认为金融市场处于自组织临界状态&#xff0c;泡沫的产生往往伴随着市场参与者之间行为的正反馈作用&#xff0c;泡沫也会因此越来越大&#xff0c;并在奇点处崩溃&#xff0c;详细介…

代码质量管理工具】——sonar

原文地址&#xff1a;https://blog.csdn.net/luckystar689/article/details/53871821 ------------------------------------------------------------------------ 【前言】 bug越改越多&#xff0c;程序一换数据就崩&#xff0c;这就是目前我们系统的一个现状。在这之前&am…

马凯军201771010116《面向对象程序设计(java)》第二周学习总结

第一部分&#xff1a;理论知识学习部分 &#xff08;1&#xff09;基本知识&#xff1a;简单应用程序的结构&#xff1b;Java环境里的注释方式&#xff1b; &#xff08;2&#xff09;数据类型&#xff08;4种整型、2种浮点型、1种字符型‘char’、真值型‘Boolean’。 &#x…

【代码质量管理工具】-由sonar引发的思考

原文路径&#xff1a;https://blog.csdn.net/luckystar689/article/details/53968102 ---------------------------------------------------------------------------------------- 之前&#xff0c;在看《笑傲江湖》的时候&#xff0c;郭德纲在给一对夫妻的表演做评审的时候…

php curl 模拟多线程,php利用curl 多线程 模拟 并发的详解

php利用curl 多线程 模拟 并发的详解发布于 2014-12-07 10:17:25 | 265 次阅读 | 评论: 0 | 来源: 网友投递PHP开源脚本语言PHP(外文名: Hypertext Preprocessor&#xff0c;中文名&#xff1a;“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点&…

新版DAEMON Tools Lite打不开 bin 文件解决方法

DAEMON Tools Lite 支持打开 *.cue 解决方法很简单&#xff1a;将*.bin 重命名为 *.cue 就可以打开

Linux集群架构(LVS DR模式搭建、keepalived + LVS)

为什么80%的码农都做不了架构师&#xff1f;>>> LVS DR模式搭建 准备工作&#xff1a;三台机器 分发器&#xff0c;也叫调度器&#xff08;简写为dir&#xff09;&#xff1a;192.168.248.128 rs1 &#xff1a;192.168.248.129 rs2 : 192.168.248.130 vip : 192.16…