python中将datetime对象转化为时间戳
从mongodb中读取出来的记录中,时间存储在datetime对象里,返回给客户端的却要求是时间戳格式,因此需要将对应的datetime时间转化为时间戳,从stackoverflow上找到同样的问题和详尽的答案:
https://stackoverflow.com/questions/8777753/converting-datetime-date-to-utc-timestamp-in-python
如下以2012年12月12日12分12秒为例,求其时间戳
1,如果是Python3.3及以上版本:
可以直接调用新函数: datetime.timestamp:
>>> dt = datetime.datetime(2012, 12, 12, 12, 12, 12)
>>> dt.replace(tzinfo=datetime.timezone.utc).timestamp()
1355314332.0
第一种方法必须指定tzinfo为utc时区,否则计算时会将当前时区(中国为UTC+8)和UTC的时间差换算后计算时间戳,导致得出的timestamp比UTC要快或者慢 n*3600秒(比如为中国时区则会慢8*3600s)
2,如果是Python3<Python3.3之间的版本:
>>> ep = datetime.datetime(1970, 1, 1)
>>> dt = datetime.datetime(2012, 12, 12, 12, 12, 12)
>>> (dt - ep)/datetime.timedelta(seconds=1)
1355314332.0
3,如果是Python2:
>>> ep = datetime.datetime(1970, 1, 1)
>>> dt = datetime.datetime(2012, 12, 12, 12, 12, 12)
>>> (dt - ep).total_seconds()
1355314332.0
第2、3种方法的原理,其实就是直接拿记录时间的datetime对象,减去代表1970年1月1日0时0分0秒(此时刻时间戳为0)的datetime,得到一个timedelta,再将其换算成秒数即为时间戳,只要保证ep和dt位于一个时区,计算结果就会相同,因而不需要特别指定utc时区。
python中将datetime对象转化为时间戳的更多相关文章
- python 有关datetime时间日期 以及时间戳转换
直接上代码 其中有注释 #coding=utf-8 import time import datetime def yes_time(): #获取当前时间 now_time = datetime.da ...
- [转载]python中将普通对象作为 字典类(dict) 使用
目前我知道的有两种方法: 1 定义的类继承dict类 例如 class A(dict): pass a = A() a['name'] = 12 2 给自定义的类添加 __setitem__() __ ...
- Excel中将时间格式转化成时间戳格式
时间戳转成正常日期的公式:C1=(A1+8*3600)/86400+70*365+19其中A1表示当时的1249488000时间戳数值其中C1就是所需的日期格式,C1单元格属性改成日期格式就可以了.正 ...
- Python dict(或对象)与json之间的互相转化
Python dict(或对象)与json之间的互相转化 原文转载自 1.JSON:JavaScript 对象表示法,是轻量级的文本数据交换格式,独立于语言,平台 2.JSON 语法规则 数据在名称/ ...
- python 使用time / datetime进行时间、时间戳、日期转换
python 使用time 进行时间.时间戳.日期格式转换 #!/usr/bin/python3 # -*- coding: utf-8 -*- # @Time : 2017/11/7 15:53 # ...
- JS中将对象转化为数组
前言 其实这本来应该是一个很基础的问题了,但我之做一想记录一下是因为之前因为对象转数组的时候卡住了后来弄了出来,但最近再遇到这个问题时竟然又卡主了,所以,关于这个问题,如何把一个对象{'未完成':5, ...
- python中datetime模块中datetime对象的使用方法
本文只讲述datetime模块中datetime对象的一些常用的方法,如果读者需要更多datetime模块的信息,请查阅此文档. datetime模块的对象有如下: timedelta date da ...
- python处理时间--- datetime模块
1 Python提供了多个内置模块用于操作日期时间,像calendar,time,datetime.time模块我在之前的文章已经有所介绍,它提供的接口与C标准库time.h基本一致.相比于tim ...
- 8 python time$datetime
1.表示时间的方式 (1)时间戳 时间戳(timestamp)的方式:通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量. 我们运行“type(time.time())” ...
随机推荐
- [零基础学JAVA]Java SE基础部分-03.标识符、数据类型,数组,方法
运算符 注意布尔逻辑运行: &&(短路与) 各 &的区别: &&只要判断到一项为0,则后面不判断.&,两项都要判断 ||(短路或)和 |的区别: 同 ...
- Handler的简单使用介绍
Handler在android程序开发中使用的非常频繁.我们知道android是不允许在子线程中更新UI的,这就需要借助Handler来实现,那么你是否想过为什么一定要这个这样子做呢?而且Handle ...
- Mongod启动失败修复方法
可能的原因:上次服务未正常关闭 1.删除data/db目录下的mongo.lock文件 2.删除/tmp/mongodb-27017.sock文件
- [19/03/26-星期二] 容器_Map(图、键值对、映射)接口之HashMap(散列映射)&TreeMap(树映射)
一.概念&方法 现实生活中,我们经常需要成对存储某些信息.比如,我们使用的微信,一个手机号只能对应一个微信账户,这就是一种成对存储的关系. Map就是用来存储“键(key)-值(value) ...
- 1、ClassLoader.getResourceAsStream() 与Class.getResourceAsStream()的区别
1.ClassLoader.getResourceAsStream() 与Class.getResourceAsStream()的区别 例如你写了一个MyTest类在包com.test.mycode ...
- 为什么机器能够学习——PAC Learnability
机器学习中,我们根据训练集训练一个模型,来对测试数据进行预测.通常我们并不关心模型在训练集上的好坏(即训练误差,in sample error),举个简单例子,我们想要根据前六个月股市行情训练一个模型 ...
- 报错Caused by: org.hibernate.AnnotationException: No identifier specified for entity:
Caused by: org.hibernate.AnnotationException: No identifier specified for entity:. 原因: 1.没有给实体类ID 解决 ...
- bootstrap-table页码ALL显示为NAN
在github上查阅找到的解决办法: https://github.com/wenzhixin/bootstrap-table/issues/435 页面部分: data-page-list=&quo ...
- el表达式不显示值
1.场景是自己搭建一个ssm的项目,登录页面跳转到首页,首页显示登录用户的信息,用request传递的值,用el表达式在jsp页面中没有显示 2.解决办法 早jsp的代码中添加头<%@ page ...
- Java中BigDecimal的一个除法异常
java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal res ...