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

1. time string
string是最简单的表示time的方式
如如下代码生成的即为string
  1. >>> import time
  2. >>> time.ctime()
  3. 'Wed Nov 30 13:53:31 2016'
或者更简单的生成一个字符串
  1. time_string = '2016-11-30 13:54:05'
 
2. datetime tuple(datetime obj)
datetime tuple是datetime.datetime对象类型
  1. >>> import datetime
  2. >>> datetime.datetime.now()
  3. datetime.datetime(2016, 11, 30, 13, 56, 51, 984213)
 
3. time tuple(time obj)
time tuple是time.struct_time对象类型
  1. >>> date_str = "2016-11-30 13:53:59"
  2. >>> time.strptime(date_str, "%Y-%m-%d %H:%M:%S")
  3. 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)以来的秒数
  1. >>> import time
  2. >>> time.time()
  3. 1480485476.20922

time, datetime, string, timestamp相互转换

1. string 转换为其它
初始化:
    date_str = "2016-11-30 13:53:59"
 
1.1 string --> datetime obj
  1. >>> import datetime
  2. >>> date_str = "2016-11-30 13:53:59"
  3. >>> datetime.datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S")
  4. datetime.datetime(2016, 11, 30, 13, 53, 59)
 
1.2 string --> time obj
  1. >>> import time
  2. >>> date_str = "2016-11-30 13:53:59"
  3. >>> time.strptime(date_str, "%Y-%m-%d %H:%M:%S")
  4. 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)
  1. 格式字符 意义
  2.  
  3. %a 星期的简写。如 星期三为Web
  4. %A 星期的全写。如 星期三为Wednesday
  5. %b 月份的简写。如4月份为Apr
  6. %B 月份的全写。如4月份为April
  7. %c: 日期时间的字符串表示。(如: 04/07/10 10:43:39
  8. %d: 日在这个月中的天数(是这个月的第几天)
  9. %f: 微秒(范围[0,999999])
  10. %H: 小时(24小时制,[0, 23])
  11. %I: 小时(12小时制,[0, 11])
  12. %j: 日在年中的天数 [001,366](是当年的第几天)
  13. %m: 月份([01,12])
  14. %M: 分钟([00,59])
  15. %p: AM或者PM
  16. %S: 秒(范围为[00,61],为什么不是[00, 59],参考python手册~_~)
  17. %U: 周在当年的周数当年的第几周),星期天作为周的第一天
  18. %w: 今天在这周的天数,范围为[0, 6],6表示星期天
  19. %W: 周在当年的周数(是当年的第几周),星期一作为周的第一天
  20. %x: 日期字符串(如:04/07/10
  21. %X: 时间字符串(如:10:43:39
  22. %y: 2个数字表示的年份
  23. %Y: 4个数字表示的年份
  24. %z: utc时间的间隔 (如果是本地时间,返回空字符串)
  25. %Z: 时区名称(如果是本地时间,返回空字符串)
  26. %%: %% => %
2.1 dt obj --> string
  1. >>> import datetime
  2. >>> dt_obj = datetime.datetime(2016, 11, 30, 13, 53, 59)
  3. >>> dt_obj.strftime("%Y-%m-%d %H:%M:%S")
  4. '2016-11-30 13:53:59'
 
2.2 dt obj --> time obj
  1. >>> import datetime
  2. >>> dt_obj = datetime.datetime(2016, 11, 30, 13, 53, 59)
  3. >>> dt_obj.timetuple()
  4. 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
  1. >>> import time
  2. >>> time_tuple = (2016, 11, 30, 13, 51, 18, 2, 317, 0)
  3. >>> time.strftime("%Y-%m-%d %H:%M:%S", time_tuple)
  4. '2016-11-30 13:51:18'
 
3.2 time obj --> datetime obj
  1. >>> import time, datetime
  2. >>> time_tuple = (2016, 11, 30, 13, 51, 18, 2, 317, 0)
  3. >>> datetime.datetime(*time_tuple[0:6])
  4. datetime.datetime(2016, 11, 30, 13, 51, 18)
 
3.3 time obj --> timestamp
  1. >>> import time
  2. >>> time_tuple = (2016, 11, 30, 13, 51, 18, 2, 317, 0)
  3. >>> time.mktime(time_tuple)
  4. 1480485078.0
 
4. timestamp转换为其它
初始化:
    timestamp = 1480486369.75
 
--!!--注意以下两种都使用local时区
4.1 timestamp --> dt obj
  1. >>> import datetime
  2. >>> timestamp = 1480486369.75
  3. >>> datetime.datetime.fromtimestamp(timestamp)
  4. datetime.datetime(2016, 11, 30, 14, 12, 49, 750000)
 
4.2 timestamp --> time obj
  1. >>> import time
  2. >>> timestamp = 1480486369.75
  3. >>> time.localtime(timestamp)
  4. 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
#本地时区时间
  1. >>> import datetime
  2. >>> timestamp = 1480486369.75
  3. >>> datetime.datetime.fromtimestamp(timestamp)
  4. datetime.datetime(2016, 11, 30, 14, 12, 49, 750000)
#标准时区时间
  1. >>> import datetime
  2. >>> timestamp = 1480486369.75
  3. >>> datetime.datetime.utcfromtimestamp(timestamp)
  4. datetime.datetime(2016, 11, 30, 6, 12, 49, 750000)
 
4.4 使用UTC --> time obj
#本地时区时间
  1. >>> import time
  2. >>> timestamp = 1480486369.75
  3. >>> time.localtime(timestamp)
  4. 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)
#标准时区时间
  1. >>> import datetime
  2. >>> timestamp = 1480486369.75
  3. >>> time.gmtime(timestamp)
  4. 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. 基于canvas实现物理运动效果与动画效果(一)

    一.为什么要写这篇文章 某年某月某时某种原因,我在慕课网上看到了一个大神实现了关于小球的抛物线运动的代码,心中很是欣喜,故而写这篇文章来向这位大神致敬,同时也为了弥补自己在运动效果和动画效果制作方面的 ...

  2. Log4net使用(一)

    LogHelper.cs using NLog; using NLog.Targets; namespace MyProject.Tool.Log { public class LogHelper { ...

  3. coursera 公开课 文本挖掘和分析(text mining and analytics) week 1 笔记

    一.课程简介: text mining and analytics 是一门在coursera上的公开课,由美国伊利诺伊大学香槟分校(UIUC)计算机系教授 chengxiang zhai 讲授,公开课 ...

  4. 在iOS中实现类似安卓自动消失提示框

    类方法: + (void)showMessage:(NSString *)message { // 获取window UIWindow *window = [UIApplication sharedA ...

  5. mysql性能优化-慢查询分析、优化索引和配置

    一.优化概述 二.查询与索引优化分析 1性能瓶颈定位 Show命令 慢查询日志 explain分析查询 profiling分析查询 2索引及查询优化 三.配置优化 1)      max_connec ...

  6. 1020关于mysql一个简单语句的执行流程

    MySQL的语句执行顺序 转自http://www.cnblogs.com/rollenholt/p/3776923.html MySQL的语句一共分为11步,如下图所标注的那样,最先执行的总是FRO ...

  7. Servlet从本地文件中读取图片,并显示在页面中

    import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpSer ...

  8. css 选择器样式优先级

    !important > 行内 >id > class >tag >*

  9. 提示reg不是批处理命令怎么办

    'regsvr32' 不是内部或外部命令,也不是可运行的程序或批处理文件.请按任意键继续. . . 系统环境变量被改了进入控制面板>高级>环境变量>系统变量,Path双击一下,填入C ...

  10. java获取json格式中的值

    先右键项目,然后点击properties,然后选中java Builder Path,选择add external jars,引入需要引入json.jar package web; import or ...