这段时间主要在河时间计算打交道,因此做了一个小小的总结,比较基础,觉得太基础和没有技术含量的请勿喷,本文所介绍的,一部分来自本人平时用过的,一部分翻译自python官方文档,还有部分摘自网络。
1、首先简单一下介绍在Python中常用的时间表示方式:1)时间戳 2)格式化的时间字符串 3)元组(struct_time)共九个元素;
2、Python中用于时间处理的总共有三个模块:time、datetime、calendar。
Time模块:
1)time.localtime([secs]):将一个时间戳转换为当前时区的struct_time。secs参数未提供,则以当前时间为准(即time.localtime(time.time()))
2)time.gmtime([secs]):和localtime()方法类似,gmtime()方法是将一个时间戳转换为UTC时区(0时区)的struct_time(即time. gmtime (time.time()))
3)time.time():返回当前时间的时间戳。
4)time.mktime(t):将一个struct_time转化为时间戳。
5)time.sleep(secs):线程推迟指定的时间运行。单位为秒。
6)time.asctime([t]):把time.gmtime() 或者 time.localtime()返回的元组或者struct_time格式的时间转换为字符串格式的时间,如Sun Jun 2023:21:05 1993,如果t为空,则默认为time. localtime()
8)time.ctime([secs]):把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。如果参数未给或者为None的时候,将会默认为time.time()
9)time.strftime(format[, t]):把一个由time.localtime()和time.gmtime()返回的元组或者struct_time转化为格式化的时间字符串
10)time.strptime(string[, format]):把一个格式化时间字符串转化为struct_time。实际上它是strftime()的逆操作
11)time.timezone:当前时区与格林威治时间相差的秒数,例如中国为-28800(-8*3600)通过这个属性可以判断当前的时区。
Datetime模块:
datetime模块定义了下面这几个类:
- datetime.date:表示日期的类。常用的属性有year, month, day;
- datetime.time:表示时间的类。常用的属性有hour, minute, second, microsecond;
- datetime.datetime:表示日期时间。
- datetime.timedelta:表示时间间隔,即两个时间点之间的长度。
- datetime.tzinfo:与时区有关的相关信息
这里主要介绍两个类:
一、datetime.date:
1)date.replace(year, month, day):返回date对象的实际值,如果参数值与date对象的实际值不相等时,则返回date对象修改后的新值,但是date对象的原值不改变。例如
>>> import datetime
>>> d=datetime.date(2013,12,12)
>>> print d
2013-12-12
>>> print d.replace()
2013-12-12
>>> print d.replace(day=2)
2013-12-02
>>> print d
2013-12-12
2)date.timetuple():返回一个struct_time格式的时间,功能和time.localtime()类似
3)date.weekday():返回date对象所对应时间是星期几(值从0到6,周日为0,周六为6),例如:
>>> import datetime
>>> d=datetime.date(2013,02,28)
>>> print d.weekday()
3
4)date.isocalendar():返回一个元组:(ISO year(格林威治年份), ISO week number(格林威治周数), ISO weekday(格林威治周几))
5)date.strftime(format):返回date对象format格式的值。
>>> import datetime
>>> d=datetime.date(2013,02,28)
>>> print d. strftime(“%d%m%y”)
‘28/03/13’
6)date.isoformat():返回date对象的标准格式值,格式为‘YYYY-MM-DD’
二、datetime.datetime
<!--[if !supportLists]-->1) <!--[endif]-->datetime.today():返回当前的本地时间
2)datetime.now([tz]):当tz为None时,返回当前的本地时间(与datetime.today()相同),该方法能够返回一个比time.time()更精确的时间戳。
3)datetime.utcnow():返回当前的UTC时间
4)datetime.fromtimestamp(timestamp[, tz]),根据时区和时间戳,返回一个date对象,timestamp必须为POSIX标准时间戳,如果tz为空,则返回一个本地date对象
5)datetime.utcfromtimestamp(timestamp),与datetime.fromtimestamp相似,但是返回的是一个标准的格林威治date对象
6)datetime.strptime(date_string, format):按照 format格式返回一个date_string对应的datetime对象
7)datetime.strftime(format):按照format格式,返回date对象的值(字符串)
PS1, datetime对象的一些实例:
>>> from datetime import datetime, date, time
>>> # Using datetime.combine()
>>> d = date(2005, 7, 14)
>>> t = time(12, 30)
>>> datetime.combine(d, t)
datetime.datetime(2005, 7, 14, 12, 30)
>>> # Using datetime.now() or datetime.utcnow()
>>> datetime.now()
datetime.datetime(2007, 12, 6, 16, 29, 43, 79043) # GMT +1
>>> datetime.utcnow()
datetime.datetime(2007, 12, 6, 15, 29, 43, 79060)
>>> # Using datetime.strptime()
>>> dt = datetime.strptime("21/11/06 16:30", "%d/%m/%y %H:%M")
>>> dt
datetime.datetime(2006, 11, 21, 16, 30)
>>> # Using datetime.timetuple() to get tuple of all attributes
>>> tt = dt.timetuple()
>>> for it in tt:
... print it
...
2006 # year
11 # month
21 # day
16 # hour
30 # minute
0 # second
1 # weekday (0 = Monday)
325 # number of days since 1st January
-1 # dst - method tzinfo.dst() returned None
>>> # Date in ISO format
>>> ic = dt.isocalendar()
>>> for it in ic:
... print it
...
2006 # ISO year
47 # ISO week
2 # ISO weekday
>>> # Formatting datetime
>>> dt.strftime("%A, %d. %B %Y %I:%M%p")
'Tuesday, 21. November 2006 04:30PM'
PS2,datetime带时区的一些实例:
>>> from datetime import timedelta, datetime, tzinfo
>>> class GMT1(tzinfo):
... def utcoffset(self, dt):
... return timedelta(hours=1) + self.dst(dt)
... def dst(self, dt):
... # DST starts last Sunday in March
... d = datetime(dt.year, 4, 1) # ends last Sunday in October
... self.dston = d - timedelta(days=d.weekday() + 1)
... d = datetime(dt.year, 11, 1)
... self.dstoff = d - timedelta(days=d.weekday() + 1)
... if self.dston <= dt.replace(tzinfo=None) < self.dstoff:
... return timedelta(hours=1)
... else:
... return timedelta(0)
... def tzname(self,dt):
... return "GMT +1"
...
>>> class GMT2(tzinfo):
... def utcoffset(self, dt):
... return timedelta(hours=2) + self.dst(dt)
... def dst(self, dt):
... d = datetime(dt.year, 4, 1)
... self.dston = d - timedelta(days=d.weekday() + 1)
... d = datetime(dt.year, 11, 1)
... self.dstoff = d - timedelta(days=d.weekday() + 1)
... if self.dston <= dt.replace(tzinfo=None) < self.dstoff:
... return timedelta(hours=1)
... else:
... return timedelta(0)
... def tzname(self,dt):
... return "GMT +2"
...
>>> gmt1 = GMT1()
>>> # Daylight Saving Time
>>> dt1 = datetime(2006, 11, 21, 16, 30, tzinfo=gmt1)
>>> dt1.dst()
datetime.timedelta(0)
>>> dt1.utcoffset()
datetime.timedelta(0, 3600)
>>> dt2 = datetime(2006, 6, 14, 13, 0, tzinfo=gmt1)
>>> dt2.dst()
datetime.timedelta(0, 3600)
>>> dt2.utcoffset()
datetime.timedelta(0, 7200)
>>> # Convert datetime to another time zone
>>> dt3 = dt2.astimezone(GMT2())
>>> dt3
datetime.datetime(2006, 6, 14, 14, 0, tzinfo=<GMT2 object at 0x...>)
>>> dt2
datetime.datetime(2006, 6, 14, 13, 0, tzinfo=<GMT1 object at 0x...>)
>>> dt2.utctimetuple() == dt3.utctimetuple()
True
Calendar:
1)calendar.isleap(year):判断year是否为闰年,如果是闰年则返回True,否则返回False
2)calendar.weekday(year, month, day):根据year、month、day组成的日期判断该天为周几
3)calendar.monthrange(year, month):判断由year和month组成月份,返回该月第一天为周几和该月总共有多少天
相关推荐
Python中有多种库可以帮助实现图形用户界面(GUI),如Tkinter、PyQt等。通过这些库,可以轻松地添加按钮、文本框等控件,提高用户体验。 #### 优化!多线程 当程序需要处理大量数据或执行耗时任务时,使用多线程...
4. 数据分析:使用适当的分析方法(如描述性统计、推断性统计、关联分析等)和工具(如Excel、SPSS、R或Python),对处理后的数据进行深度分析,寻找模式和趋势。 5. 数据展现:通过图表形式呈现数据,如饼图、柱状...
在IT领域,模型构建是数据分析和机器学习中的关键步骤,而“model_lt_ic_”这一标题可能指的是一个特定的模型实现,结合描述,我们可以推测这是一个关于独立级联(Independent Cascade, IC)模型和线性阈值(Linear ...
对于python 多线程的理解,我花了很长时间,搜索的大部份文章都不够通俗易懂。所以,这里力图用简单的例子,让你对多线程有个初步的认识。 单线程 在好些年前的MS-DOS时代,操作系统处理问题都是单任务的,我想做...
一、进程与线程 1.进程 我们电脑的应用程序,都是进程,假设我们...数据集是程序执行过程中所使用的资源;进程控制块用来保存程序运行的状态 2.线程 一个进程中可以开多个线程,为什么要有进程,而不做成线程呢?因为一
对于python多线程的理解,我花了很长时间,搜索的大部份文章都不够通俗易懂。所以,这里力图用简单的例子,让你对多线程有个初步的认识。在好些年前的MS-DOS时代,操作系统处理问题都是单任务的,我想做听音乐和看...
指针是C语言中的概念,它存储了对象的内存地址,而引用在Java和Python等语言中类似,也用来指向对象。在链表中,`p->next=q`表示p节点的next指针指向q节点,`p->next=p->next->next`表示p节点的next指针跳过当前节点...
Numpy与Pandas库使用教学PPT(共87P),详细介绍了python最常用的两个库数值计算库numpy和数据表计算库pandas-号称python中的excel,实际上它的功能远高于excel,掌握好这两个库,打好基础,后面的python金融、...
人生苦短,我用python。 看到这句话的时候,感觉可能确实是很深得人心,不过每每想学学,就又止步,年纪大了,感觉学什么东西都很慢,很难,精神啊注意力啊思维啊都跟不上。...目前奶牛所在的时间redis fo
Java和Docker限制的那些事儿 适用于CI容器漏洞扫描神器 终于有人把 Docker 讲清楚了,万字详解! Docker 网络配置那些事 解密 Docker 挂载文件,宿主机修改后容器里文件没有修改 推荐两个Docker配置检查与启动异常...
探索性数据分析/ 支持向量机/ word2vec/ 贝叶斯-拼写检查器.zip 贝叶斯-新闻分类.zip 贝叶斯Python文本分析.zip 降维算法.zip 聚类算法.zip 决策树.zip 科比数据集分析.zip ...Python时间序列.zip Xgboost调参.zip
1. **多语言支持**:SourceCounter可能能够处理多种编程语言,如Java、Python、C++、JavaScript等,确保了对各种项目的支持。 2. **分类统计**:工具可能区分了代码、注释和空行,提供详细的统计报告,帮助开发者...
1. **性能优化**:通过使用Intel的硬件加速技术,IPPICV能够以比标准C++或Python代码更快的速度执行计算密集型任务,从而提高了整个OpenCV应用的运行效率。 2. **广泛的函数集**:IPPICV提供了大量的图像处理函数,...