time有四种类型(time, datetime, string, timestamp)

1. time string
string是最简单的表示time的方式
如如下代码生成的即为string
>>> import time
>>> time.ctime()
'Wed Nov 30 13:53:31 2016'
或者更简单的生成一个字符串
time_string = '2016-11-30 13:54:05'
 
2. datetime tuple(datetime obj)
datetime tuple是datetime.datetime对象类型
>>> import datetime
>>> datetime.datetime.now()
datetime.datetime(2016, 11, 30, 13, 56, 51, 984213)
 
3. time tuple(time obj)
time tuple是time.struct_time对象类型
>>> date_str = "2016-11-30 13:53:59"
>>> time.strptime(date_str, "%Y-%m-%d %H:%M:%S")
time.struct_time(tm_year=2016, tm_mon=11, tm_mday=30, tm_hour=13, tm_min=53, tm_sec=59, tm_wday=2, tm_yday=335, tm_isdst=-1)
 
4. timestamp
时间戳类型:自1970年1月1日(00:00:00 GMT)以来的秒数
>>> import time
>>> time.time()
1480485476.20922

time, datetime, string, timestamp相互转换

1. string 转换为其它
初始化:
    date_str = "2016-11-30 13:53:59"
 
1.1 string --> datetime obj
>>> import datetime
>>> date_str = "2016-11-30 13:53:59"
>>> datetime.datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S")
datetime.datetime(2016, 11, 30, 13, 53, 59)
 
1.2 string --> time obj
>>> import time
>>> date_str = "2016-11-30 13:53:59"
>>> time.strptime(date_str, "%Y-%m-%d %H:%M:%S")
time.struct_time(tm_year=2016, tm_mon=11, tm_mday=30, tm_hour=13, tm_min=53, tm_sec=59, tm_wday=2, tm_yday=335, tm_isdst=-1)
 
2. datetime obj转换为其它
datetime obj转换为其它类型,用的都是datetime的函数
初始化:
    dt_obj = datetime.datetime(2016, 11, 30, 13, 53, 59)
格式字符  意义

%a 星期的简写。如 星期三为Web
%A 星期的全写。如 星期三为Wednesday
%b 月份的简写。如4月份为Apr
%B 月份的全写。如4月份为April
%c: 日期时间的字符串表示。(如: 04/07/10 10:43:39)
%d: 日在这个月中的天数(是这个月的第几天)
%f: 微秒(范围[0,999999])
%H: 小时(24小时制,[0, 23])
%I: 小时(12小时制,[0, 11])
%j: 日在年中的天数 [001,366](是当年的第几天)
%m: 月份([01,12])
%M: 分钟([00,59])
%p: AM或者PM
%S: 秒(范围为[00,61],为什么不是[00, 59],参考python手册~_~)
%U: 周在当年的周数当年的第几周),星期天作为周的第一天
%w: 今天在这周的天数,范围为[0, 6],6表示星期天
%W: 周在当年的周数(是当年的第几周),星期一作为周的第一天
%x: 日期字符串(如:04/07/10)
%X: 时间字符串(如:10:43:39)
%y: 2个数字表示的年份
%Y: 4个数字表示的年份
%z: 与utc时间的间隔 (如果是本地时间,返回空字符串)
%Z: 时区名称(如果是本地时间,返回空字符串)
%%: %% => %
2.1 dt obj --> string
>>> import datetime
>>> dt_obj = datetime.datetime(2016, 11, 30, 13, 53, 59)
>>> dt_obj.strftime("%Y-%m-%d %H:%M:%S")
'2016-11-30 13:53:59'
 
2.2 dt obj --> time obj
>>> import datetime
>>> dt_obj = datetime.datetime(2016, 11, 30, 13, 53, 59)
>>> dt_obj.timetuple()
time.struct_time(tm_year=2016, tm_mon=11, tm_mday=30, tm_hour=13, tm_min=53, tm_sec=59, tm_wday=2, tm_yday=335, tm_isdst=-1)
 
3. time obj转换为其它
初始化:
    time_tuple = (2016, 11, 30, 13, 51, 18, 2, 317, 0)
 
3.1 time obj --> string
>>> import time
>>> time_tuple = (2016, 11, 30, 13, 51, 18, 2, 317, 0)
>>> time.strftime("%Y-%m-%d %H:%M:%S", time_tuple)
'2016-11-30 13:51:18'
 
3.2 time obj --> datetime obj
>>> import time, datetime
>>> time_tuple = (2016, 11, 30, 13, 51, 18, 2, 317, 0)
>>> datetime.datetime(*time_tuple[0:6])
datetime.datetime(2016, 11, 30, 13, 51, 18)
 
3.3 time obj --> timestamp
>>> import time
>>> time_tuple = (2016, 11, 30, 13, 51, 18, 2, 317, 0)
>>> time.mktime(time_tuple)
1480485078.0
 
4. timestamp转换为其它
初始化:
    timestamp = 1480486369.75
 
--!!--注意以下两种都使用local时区
4.1 timestamp --> dt obj
>>> import datetime
>>> timestamp = 1480486369.75
>>> datetime.datetime.fromtimestamp(timestamp)
datetime.datetime(2016, 11, 30, 14, 12, 49, 750000)
 
4.2 timestamp --> time obj
>>> import time
>>> timestamp = 1480486369.75
>>> time.localtime(timestamp)
time.struct_time(tm_year=2016, tm_mon=11, tm_mday=30, tm_hour=14, tm_min=12, tm_sec=49, tm_wday=2, tm_yday=335, tm_isdst=0)
 
--!!--以下两种方式和时区相关,比较标准时区时间和本地时区时间
4.3 使用UTC --> dt obj
#本地时区时间
>>> import datetime
>>> timestamp = 1480486369.75
>>> datetime.datetime.fromtimestamp(timestamp)
datetime.datetime(2016, 11, 30, 14, 12, 49, 750000)
#标准时区时间
>>> import datetime
>>> timestamp = 1480486369.75
>>> datetime.datetime.utcfromtimestamp(timestamp)
datetime.datetime(2016, 11, 30, 6, 12, 49, 750000)
 
4.4 使用UTC --> time obj
#本地时区时间
>>> import time
>>> timestamp = 1480486369.75
>>> time.localtime(timestamp)
time.struct_time(tm_year=2016, tm_mon=11, tm_mday=30, tm_hour=14, tm_min=12, tm_sec=49, tm_wday=2, tm_yday=335, tm_isdst=0)
#标准时区时间
>>> import datetime
>>> timestamp = 1480486369.75
>>> time.gmtime(timestamp)
time.struct_time(tm_year=2016, tm_mon=11, tm_mday=30, tm_hour=6, tm_min=12, tm_sec=49, tm_wday=2, tm_yday=335, tm_isdst=0)

python 时间类型和相互转换的更多相关文章

  1. python 时间类型

  2. python 日期、时间、字符串相互转换

    python 日期.时间.字符串相互转换 在python中,日期类型date和日期时间类型dateTime是不能比较的. (1)如果要比较,可以将dateTime转换为date,date不能直接转换为 ...

  3. Python数据结构同Json类型数据相互转换的用法

    在做Python接口自动化的时候,经常要用到Python数据结构同Json类型数据相互转换来供我们做进一步的验证提供数据,在此做个记录和总结 Python数据结构同Json类型数据相互转换的函数有:j ...

  4. python 日期、时间、字符串相互转换(转载)

    原文链接:https://www.cnblogs.com/huhu-xiaomaomi/p/10338472.html 在python中,日期类型date和日期时间类型dateTime是不能比较的. ...

  5. Python 时间日历类型

    # 时间日历 # time模块 # 提供了处理时间和表示之间转换的功能 # 获取当前时间戳 # 概念 # 从0时区的1970年1月1日0时0分0秒, 到所给定日期时间的秒数 # 浮点数 # 获取方式 ...

  6. 浅谈Python时间模块

    浅谈Python时间模块 今天简单总结了一下Python处理时间和日期方面的模块,主要就是datetime.time.calendar三个模块的使用.希望这篇文章对于学习Python的朋友们有所帮助 ...

  7. python 时间字符串与日期转化

    python 时间字符串与日期转化 datetime.datetime.strptime(string, format) 根据指定的格式解析字符串为一个datetime类型.相当于datetime.d ...

  8. python动态类型

    在python中,省去了变量声明的过程,在引用变量时,往往一个简单的赋值语句就同时完成了,声明变量类型,变量定义和关联的过程,那么python的变量到底是怎样完成定义的呢? 动态类型 python使用 ...

  9. 第二节:比较DateTime和DateTimeOffset两种时间类型并介绍Quartz.Net中用到的几类时间形式(定点、四舍五入、倍数、递增)

    一. 时间的类型 1. 背景 这里为什么要介绍时间类型呢,明明是定时调度篇,原因是在定时任务中,任务什么时间开始执行,什么时间结束执行,要用到各种各样的时间模式,虽然这不能算是一个复杂的问题,但在正式 ...

随机推荐

  1. 【Python】[函数] 函数的参数与递归函数

    一.函数的参数1.位置参数2.默认参数 n就是默认参数 def power(x,n=2): s=1 while n > 0: n = n - 1 s = s * x return s 默认参数有 ...

  2. iOS开发小技巧--即时通讯项目:使用富文本在UILabel中显示图片和文字;使用富文本占位显示图片

    Label借助富文本显示图片 1.即时通讯项目中语音消息UI的实现,样式如图: 借助富文本在UILabel中显示图片和文字 // 1.创建一个可变的富文本 NSMutableAttributedStr ...

  3. 【BZOJ 1030】【JSOI 2007】文本生成器 AC自动机+递推

    一直不理解到底怎么做啊,想了好久$TwT$ 最后终于明白了为什么找到第一个满足条件的$fail$就计算,因为避免重复,这个回答,,, 然后$root$下面要接上26个节点,这里26个字母中不在字典内的 ...

  4. MyEclipse去除网上复制下来的来代码带有的行号

    作为开发人员,我们经常从网上复制一些代码,有些时候复制的代码前面是带有行号,如: MyEclipse本身自带有查找替换功能,并且支持正则表达式替换,使用正则替换就可以很容易去除这些行号 使用快捷键“c ...

  5. ElasticSearch快照备份及恢复

    工作步骤: 1:建立备份快照数据挂载点,即共享文件目录(Shared Filesystem): 2:建立快照仓储repository: 3:建立snapshot快照备份: 4:恢复snapshot快照 ...

  6. Echarts-axislabel文字过长导致显示不全或重叠

    先看两张图 按目前情况,官方并为对axislabel的高度或者宽度做调整.所以解决方案只能从其他方案下手 解决方案有几种 第一种为上图解决方案 设置grid属性定义图的大小来释放空间,使得axisla ...

  7. 面试经验(SG)

    (1)给定一个字符串,"hello world high quality",去除里面的字符'h',然后返回一个新的字符串. package niukewang; public cl ...

  8. 【Codeforces 707C】Pythagorean Triples(找规律)

    一边长为a的直角三角形,a^2=c^2-b^2.可以发现1.4.9.16.25依次差3.5.7.9...,所以任何一条长度为奇数的边a,a^2还是奇数,那么c=a^2/2,b=c+1.我们还可以发现, ...

  9. 【faster-rcnn】训练自己的数据——修改图片格式、类别

    修改图片格式 matlab代码 其实内部一些代码是用了rbg的fast-rcnn代码的. \datasets\VOCdevkit2007\VOCcode\VOCinit.m里面,查找'jpg',改成' ...

  10. linux永久更改eth0的ip地址

    linux中永久修改ip和子网掩码,可以用命令也可以直接到文件里修改.这里推荐直接到文件中修改.1.进入网卡配置文件 vi /etc/sysconfig/network-scripts/ifcfg-e ...