python 下字符串格式时间比较

python 下有多个有关时间的模块,分别是time、datetime、calendar,今天重点讨论下time写法。

其中time模块,主要有以下方法:

ltime=time.time() 获取当前系统时间,返回float型数值时间戳(当前时间相对于1970.1.1 00:00:00以秒计算的偏移量);

localtime=time.localtime(ltime) 把float型时间戳转变成当前时区struct time型时间(其实是一个数组);

localtime=time.gmtime(ltime) 把float型时间戳转变成UTC时区struct time型时间(其实是一个数组);

ltime= time.mktime(localtime)  把str uct time转成float型时间戳。

strtime= time.strftime('%Y%m%d %H%M%S', localtime) ,localtime参数是struct time时间,返回字符串。

localtime=time.strptime(strtime,'%Y%m%d %H%M%S') ,正好是strftime的反向操作,strtime参数字符串格式日期。

举例,一个时间偏移后的比较情况:

 1 #-*-coding=utf-8-*-
 2 __author__='zhongtang'
 3 
 4 '''
 5 时间戳与字符串的互相转换
 6 '''
 7 
 8 import time
 9 
10 localtime1=time.localtime()
11 time.sleep(5)
12 localtime2=time.localtime(time.time())
13 
14 print type(localtime1),localtime1
15 print type(localtime2),localtime2
16 
17 gmtime=time.gmtime(time.time())
18 print  type(gmtime),gmtime
19 
20 
21 strtime1='20160518010101'
22 strtime2='20160518020101'
23 
24 #字符串变成时间数据结构
25 localtime1=time.strptime(strtime1,'%Y%m%d%H%M%S')
26 localtime2=time.strptime(strtime2,'%Y%m%d%H%M%S')
27 
28 print type(localtime1),localtime1
29 print type(localtime2),localtime2
30 
31 
32 #从时间数据结构转换成时间戳
33 time1= time.mktime(localtime1)
34 time2= time.mktime(localtime2)
35 
36 print type(time1),time1
37 print type(time2),time2
38 
39 #时间戳可以直接相减,得到以秒为单位的差额
40 print time2-time1

输出结果

1 <type 'time.struct_time'> time.struct_time(tm_year=2016, tm_mon=5, tm_mday=19, tm_hour=9, tm_min=9, tm_sec=30, tm_wday=3, tm_yday=140, tm_isdst=0)
2 <type 'time.struct_time'> time.struct_time(tm_year=2016, tm_mon=5, tm_mday=19, tm_hour=9, tm_min=9, tm_sec=35, tm_wday=3, tm_yday=140, tm_isdst=0)
3 <type 'time.struct_time'> time.struct_time(tm_year=2016, tm_mon=5, tm_mday=19, tm_hour=1, tm_min=9, tm_sec=35, tm_wday=3, tm_yday=140, tm_isdst=0)
4 <type 'time.struct_time'> time.struct_time(tm_year=2016, tm_mon=5, tm_mday=18, tm_hour=1, tm_min=1, tm_sec=1, tm_wday=2, tm_yday=139, tm_isdst=-1)
5 <type 'time.struct_time'> time.struct_time(tm_year=2016, tm_mon=5, tm_mday=18, tm_hour=2, tm_min=1, tm_sec=1, tm_wday=2, tm_yday=139, tm_isdst=-1)
6 <type 'float'> 1463504461.0
7 <type 'float'> 1463508061.0
8 3600.0

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏GreenLeaves

Proxy代理模式(结构型模式)

在面向对象系统中,有些对象由于某种原因(比如创建对象的开销很大,或者某些操作需要安全控制,或者需要进程外的访问等),直接访问会给调用者带来麻烦,那么如何在不损失...

1333
来自专栏debugeeker的专栏

《coredump问题原理探究》Linux x86版3.8节栈布局之栈溢出coredump例子

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xuzhina/article/detai...

1082
来自专栏Golang语言社区

golang的内存模型与new()与make()

要彻底理解new()与make()的区别, 最好从内存模型入手. golang属于c family, 而c程序在unix的内在模型: |低地址|text|dat...

6.4K7
来自专栏康怀帅的专栏

PHP 变量与常量

本文介绍了 PHP 变量与常量。 官方文档:http://php.net/manual/zh/language.variables.php 官方文档:http:...

3074
来自专栏我爱编程

Day14IO编程

读文件 Python引入了with语句来自动帮我们调用close()方法: with open('/path/to/file', 'r') as f: ...

3285
来自专栏Golang语言社区

golang的内存模型与new()与make()

要彻底理解new()与make()的区别, 最好从内存模型入手. golang属于c family, 而c程序在unix的内在模型: |低地址|text|dat...

3036
来自专栏静默虚空的博客

Shell 快速指南

Shell 快速指南 ███████╗██╗ ██╗███████╗██╗ ██╗ ██╔═══...

27910
来自专栏程序你好

在c#中,如何序列化/反序列化一个字典对象?

.Net提供的各种序列化的类,通过使用这些类,. Net对象的序列化和反序列化变得很容易。但是字典对象的序列化并不是那么容易。为此,您必须创建一个能够序列化自身...

1031
来自专栏熊二哥

快速入门系列--CLR--03泛型集合

.NET中的泛型集合 在这里主要介绍常见的泛型集合,很多时候其并发时的线程安全性常常令我们担忧。因而简述下.NET并发时线程安全特性,其详情请见MSDN。 ...

1797
来自专栏大内老A

关于CLR内存管理一些深层次的讨论[上篇]

半年之前,PM让我在部门内部进行一次关于“内存泄露”的专题分享,我为此准备了一份PPT。今天无意中将其翻出来,觉得里面提到的关于CLR下关于内存管理部分的内存还...

2028

扫码关注云+社区

领取腾讯云代金券