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. 学习服务端JavaScript这个有名的Node.js

    没接触过,试着简单学一下,从头开始: 参照这个教程:https://github.com/alsotang/node-lessons/tree/master/lesson0 一.搭建环境: 1.搭建N ...

  2. 使textarea支持tab缩进

    //textarea支持tab缩进 $("textarea").on( 'keydown', function(e) { if (e.keyCode == 9) { e.preve ...

  3. C++类功能扩展预留五招

    第一招虚函数 通过派生类来进行功能扩展是基本的面向对象的方式,这种方式大如下: class base { public: virtual ~base(){} virtual void fun() { ...

  4. dblink连接的目标端 session不断的问题。

    来源于:http://blog.itpub.net/22782896/viewspace-676842/ 1.在使用了dblink的存储过程中,可以显示的手动关闭dblink连接,具体写法如下(测试存 ...

  5. Linux System and Performance Monitoring

    写在前面:本文是对OSCon09的<Linux System and Performance Monitoring>一文的学习笔记,主要内容是总结了其中的要点,以及加上了笔者自己的一些理解 ...

  6. Ceph性能优化总结(v0.94)

    优化方法论 做任何事情还是要有个方法论的,“授人以鱼不如授人以渔”的道理吧,方法通了,所有的问题就有了解决的途径.通过对公开资料的分析进行总结,对分布式存储系统的优化离不开以下几点: 1. 硬件层面 ...

  7. 修改placehosder

    CSS美化INPUT placeholder效果.CSS代码美化文本框里的placeholder文字. ::selection伪元素 简而言之:单冒号(:)用于CSS3伪类,双冒号(::)用于CSS3 ...

  8. 【CodeVS 1218】【NOIP 2012】疫情控制

    http://codevs.cn/problem/1218/ 比较显然的倍增,但是对于跨过根需要很多讨论,总体思路是贪心. 写了一上午,不想再说什么了 #include<cstdio> # ...

  9. swift 学习(一)基础知识 (基本数据类型,操作符,流控制,集合)

    xcode 中调用API帮助 1.查看简单信息,选中后 按键 control +左键单击  或者按 右侧属性栏 里的帮助按钮 2.完整API,选中后 按键 control +左键双击 3.查看类.函数 ...

  10. web前端开发必懂之一:JS继承和继承基础总结

    首先,推荐一篇博客豪情的博客JS提高: http://www.cnblogs.com/jikey/p/3604459.html ,里面的链接全是精华, 一般人我不告诉他; 我们会先从JS的基本的设计模 ...