1. 时间字符串 --> 时间戳

1) time 模块

  1. timestring = '2016-12-21 10:22:56'
  2. print time.mktime(time.strptime(timestring, '%Y-%m-%d %H:%M:%S')) # 1482286976.0

time.mktime() 与 time.localtime() 互为还原函数。

time.mktime(timetuple) :将时间元组转换成时间戳

time.localtime([timestamp]):将时间戳转会为时间元组

2) datetime 模块

在这里没有找到,似乎只有 time 模块能获取时间戳

2. 时间戳 --> 时间字符串

1) time 模块

  1. timestamp = time.time()
  2. timestruct = time.localtime(timestamp)
  3. print time.strftime('%Y-%m-%d %H:%M:%S', timestruct) # 2016-12-22 10:49:57

2) datetime 模块

  1. import datetime
  2. timestamp = 1482374997.55
  3. datetime_struct = datetime.datetime.fromtimestamp(timestamp)
  4. print datetime_struct.strftime('%Y-%m-%d %H:%M:%S') # 2016-12-22 10:49:57
  5.  
  6. datetime_struct = datetime.datetime.utcfromtimestamp(timestamp)
  7. print datetime_struct.strftime('%Y-%m-%d %H:%M:%S') # 2016-12-22 02:49:57

fromtimestamp(timestamp[, tz]):将时间戳转为当地的时间元组
    utcfromtimestamp(timestamp):将时间戳转为UTC的时间元组。以北京为例:utc时间比北京当地时间少8个小时。

3. 时间差计算

1) 几天/周前

  1. import datetime
  2.  
  3. now = datetime.datetime.now()
  4. three_days_ago = now + datetime.timedelta(days=-3)
  5. three_weeks_ago = now + datetime.timedelta(weeks=-3)
  6.  
  7. print now # datetime.datetime(2016, 12, 22, 11, 24, 49, 987171)
    print three_days_ago # datetime.datetime(2016, 12, 19, 11, 24, 49, 987171)
    print three_weeks_ago # datetime.datetime(2016, 12, 1, 11, 24, 49, 987171)

2) 几天/周后

  1. import datetime
  2.  
  3. now = datetime.datetime.now()
  4. three_days_later = now + datetime.timedelta(days=3)
  5. three_weeks_later = now + datetime.timedelta(weeks=3)
  6.  
  7. print now # datetime.datetime(2016, 12, 22, 11, 24, 49, 987171)
  8. print three_days_later # datetime.datetime(2016, 12, 25, 11, 24, 49, 987171)
  9. print three_weeks_later # datetime.datetime(2017, 1, 12, 11, 24, 49, 987171)

注意:没有months和years

3)时间差

  1. import time
  2. import datetime
  3.  
  4. start = datetime.datetime.now()
  5. time.sleep(30)
  6. end = datetime.datetime.now()
  7.  
  8. print (end-start).days # 0 天数
  9. print (end-start).total_seconds() # 30.029522 精确秒数
  10. print (end-start).seconds # 30 秒数
  11. print (end-start).microseconds # 29522 毫秒数

注意:没有分钟

4. 任意时间字符串转换时间对象

  1. import time
  2. from dateutil import parser
  3.  
  4. time_string = time.ctime() # 'Thu Dec 22 10:35:25 2016',这里可以是任意的时间格式
  5. datetime_struct = parser.parse(time_string)
  6. print type(datetime_struct) # <type 'datetime.datetime'>
  7. print datetime_struct.strftime('%Y-%m-%d %H:%M:%S') # 2016-12-22 13:58:59

Python 之 时间字符串、时间戳、时间差、任意时间字符串转换时间对象的更多相关文章

  1. python(6)时间戳和北京时间互转,输出当前的时间和推到七天前的日期

    项目发展的需要:(包含时间函数)time datetime 时间戳和北京时间互转 import time import datetime s = '2015-04-17 11:25:30' d = d ...

  2. Js获取当前的日期和时间以及时间戳转化为时间

    /** *获取当前时间 *format=1精确到天 *format=2精确到分 */ function getCurrentDate(format) { var now = new Date(); v ...

  3. python 时间与时间戳之间的转换

    https://blog.csdn.net/kl28978113/article/details/79271518 对于时间数据,如2016-05-05 20:28:54,有时需要与时间戳进行相互的运 ...

  4. python 时间和时间戳的转换

    对于时间数据,如2016-05-05 20:28:54,有时需要与时间戳进行相互的运算,此时就需要对两种形式进行转换,在Python中,转换时需要用到time模块,具体的操作有如下的几种: 将时间转换 ...

  5. python—时间与时间戳之间的转换

    python-时间与时间戳之间的转换 对于时间数据,如2016-05-05 20:28:54,有时需要与时间戳进行相互的运算,此时就需要对两种形式进行转换,在Python中,转换时需要用到time模块 ...

  6. 【python-时间戳】时间与时间戳之间的转换

    对于时间数据,如2016-05-05 20:28:54,有时需要与时间戳进行相互的运算,此时就需要对两种形式进行转换,在Python中,转换时需要用到time模块,具体的操作有如下的几种: 将时间转换 ...

  7. utc时间、本地时间及时间戳转化

    1.时间戳的概念 时间戳的定义请看百科unix时间戳,需要注意的时间戳为当前时刻减去UTC时间(1970.1.1)零点时刻的秒数差,与当前系统所处的时区无关,同一时刻不管在任何时区下得到的时间戳都是一 ...

  8. Shell初学(六)Linux Shell 时间运算以及时间差计算方法

    Linux Shell 时间运算以及时间差计算方法 时间的加减,以及时间差的计算. 1. 时间加减 这里处理方法,是将基础的时间转变为时间戳,然后,需要增加或者改变时间,变成 秒. 如:1990-01 ...

  9. Java时间和时间戳的相互转换

    时间转换为时间戳: /* * 将时间转换为时间戳 */ public static String dateToStamp(String s) throws ParseException{ String ...

随机推荐

  1. I.MX6 initramfs.cpio.gz.uboot unpack

    /********************************************************************************* * I.MX6 initramfs ...

  2. CentOS7 监控进程网络流量工具安装

    服务器在做测试的时候,需要监控网络流量,用来了解在不同人数的时候服务器的网络使用量. 我们使用服务器环境是centos7,centos下通常使用iftop,或者nethogs来进行网络流量监控.这2个 ...

  3. 从一个数组中提取出第start位到第end位

    假设通过数组in来表示一个很大的数(in[0]表示最低bit),提取该数的第start位到第end位(计数起始位为0): #define MAX_BYTE_LEN ( 48 ) int getData ...

  4. Elasticsearch Network Settings

    网络设置 Elasticsearch 缺省情况下是绑定 localhost.对于本地开发服务是足够的(如果你在相同机子上启动多个节点,它还可以形成一个集群),但是你需要配置基本的网络设置,为了能够在实 ...

  5. Mysql使用mysqldump按时间导出时的一个注意事项

    在使用Mysql的mysqldump命令按时间进行数据导出时,我们可能会遇到导出数据与原库中不符或者导出数据和我们期望的数据不同的情况. 我们知道Mysql数据库导出可以使用命令mysqldump,使 ...

  6. input常用属性

    对于input的使用,大家都很熟悉的,<input> 标签用于搜集用户信息.根据不同的 type 属性值,输入字段拥有很多种形式.输入字段可以是文本字段.复选框.掩码后的文本控件.单选按钮 ...

  7. OS实验报告——作业调度模拟程序

    一.目的和要求 1. 实验目的 (1)加深对作业调度算法的理解: (2)进行程序设计的训练. 2.实验要求 用高级语言编写一个或多个作业调度的模拟程序. 单道批处理系统的作业调度程序.作业一投入运行, ...

  8. 使用TCP的HelloServer

    HelloServer是一个在1234端口监听的服务端程序,它接受客户送来的数据,并且把这些数据解释为响应的ASCII字符,再对客户做出类似“Hello,...!"这样的响应.以下是Hell ...

  9. phpMyAdmin如何设置float小数点

    在长度/值设置 5,2就行了哈

  10. 手写json

    json的意思是JavaScript 对象表示法 '{"0":0,"b":[3,4,5],"c":"0","d ...