from datetime import date, datetime, timedelta
    import time
    import pandas as pd
    from pandas.tseries.offsets import Hour, Minute, Second
    
    
    print(time.localtime()) # time.struct_time(tm_year=2019, tm_mon=11, tm_mday=12, tm_hour=18, tm_min=34, tm_sec=52, tm_wday=1, tm_yday=316, tm_isdst=0)
    print(datetime.now().timestamp()) # 1573554892.416593 带小时分秒的
    print(datetime.now().tzinfo)    # None
    print(datetime.now().timetz())  # 18:34:52.416593
    print(datetime.now().date())    # 2019-11-12
    print(datetime.now())  # 2019-11-12 18:34:52.416593
        
    # date
    fixdate = date.today()+timedelta(days=-1)
    # date convert to datetime
    dtt = datetime(fixdate.year, fixdate.month, fixdate.day)
    print(dtt)              # 2019-11-11 00:00:00
    print(dtt.tzinfo)       # None 默认没有时区信息
    s_ts = dtt.timestamp()  # 1573401600.0 UTC时间戳
    print('------------------pd.to_datetime--------------------------')
    # pandas需要自己处理时区问题,默认没有时区信息,可以先本地化tz_localize时区再转换成tz_convert目标时区
    pddt = pd.to_datetime(s_ts, utc=True, unit='s') 
    print(pddt.tzinfo)                        # UTC
    print(pddt.timestamp())                   # 1573401600.0 
    print(pddt)                               # 2019-11-10 16:00:00+00:00
    pddt = pd.to_datetime(s_ts, utc=False, unit='s')
    print(pddt.tzinfo)                        # None
    print(pddt.timestamp())                   # 1573401600.0
    print(pddt)                               # 2019-11-10 16:00:00 
    pddt = pd.to_datetime(s_ts, utc=False, unit='s').tz_localize('Asia/Shanghai') # 本地化成某个时区
    print(pddt.tzinfo)                        # Asia/Shanghai
    print(pddt.timestamp())                   # 1573372800.0 
    print(pddt)                               # 2019-11-10 16:00:00+08:00 
    pddt = pd.to_datetime(s_ts, utc=True, unit='s').tz_convert('Asia/Shanghai')  # 转换成某个时区
    print(pddt.tzinfo)                        # Asia/Shanghai
    print(pddt.timestamp())                   # 1573401600.0 
    print(pddt)                               # 2019-11-11 00:00:00+08:00 
    print('--------------------Hour(23) + Minute(59) + Second(59) --------------------------')
    sec = Hour(23) + Minute(59) + Second(59) 
    print(sec.freqstr) # 86399S 秒,结束带个S
    pddt = pd.to_datetime(s_ts+int(sec.freqstr[:-1]), utc=True, unit='s').tz_convert('Asia/Shanghai')
    print(pddt)              # 2019-11-11 23:59:59+08:00
    print(pddt.timestamp())  # 1573487999.0 
    
     # 这样算本来才是真正想要的目标时间戳,推荐使用这种方式
    dtt_hms = (dtt + Hour(23) + Minute(59) + Second(59)).tz_localize('Asia/Shanghai').tz_convert('utc').value/1000000000
    print(dtt_hms)           # 1573487999.0 2019-11-11 23:59:59+08:00
    
    # 这样算出为是目标时间多了8小时的时间戳
    dtt_hms = (dtt + Hour(23) + Minute(59) + Second(59)).value/1000000000
    print(dtt_hms)           # 1573516799.0  2019-11-12 07:59:59 
    exit(0)

pandas之to_datetime时区转换的更多相关文章

  1. SQL Server全时区转换

    SQL Server全时区转换 假如你的应用程序是跨国(例如跨国银行交易)使用的话,那么数据库的一些国际化特性支持可以说是非常重要 其中最常见的就是各国时区上的差异,由于SQL Server getd ...

  2. datetime时区转换

    http://www.dannysite.com/blog/122/ Python标准库中的datetime模块提供了各种对日期和时间的处理方法.从本文的主题着手,首先利用datetime中提供的ut ...

  3. python 27 获取时区转换后的时间

    python3的datetime有timezone属性,这里介绍python2.7环境下,获取时区转换后的时间. 利用第三方插件,pytz,没有安装的话安装一下. #!/usr/bin/env pyt ...

  4. Java 时区转换(UTC+8 到 UTC 等等)

    前言:需要做时区转换,知道北京为UTC+8,东京为UTC+9,世界标准时间为UTC,所以下面的代码是只需要知道时区是+8还是+9还是0就可以了,不需要使用"CTT". " ...

  5. java中的时区转换

    目录 java中的时区转换 一.时区的说明 二.时间的表示 三.时间戳 四.Date类和时间戳 五.java中的时区转换 java中的时区转换 一.时区的说明 地球表面按经线从东到西,被划成一个个区域 ...

  6. Java日期时间API系列19-----Jdk8中java.time包中的新的日期时间API类,ZonedDateTime与ZoneId和LocalDateTime的关系,ZonedDateTime格式化和时区转换等。

    通过Java日期时间API系列6-----Jdk8中java.time包中的新的日期时间API类中时间范围示意图:可以很清晰的看出ZonedDateTime相当于LocalDateTime+ZoneI ...

  7. Clickhouse 时区转换(下)

    Clickhouse 时区转换续—时区参数转换 天天加班,时间不够,主要还是我太懒,流汗,,,,,,另外如果这篇学习笔记超过100阅读量并有评论,我可能半夜也会爬起来更新的. 相信大家看我之前记录的这 ...

  8. Clickhouse 时区转换

    Clickhouse 时区转换 ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS). OLAP场景的关键特征 大多数是读请求 数据总是以相当大的批(> 1000 ...

  9. Python3中datetime时区转换介绍与踩坑

    最近的项目需要根据用户所属时区制定一些特定策略,学习.应用了若干python3的时区转换相关知识,这里整理一部分记录下来. 下面涉及的几个概念及知识点: GMT时间:Greenwich Mean Ti ...

随机推荐

  1. [Scrapy-6] XPath使用的一个坑

    先上代码: import scrapy from scrapy.selector import Selector class QuoteSpider(scrapy.Spider): name = &q ...

  2. Delphi TIdUDPClient组件

  3. 用Buildout来构建Python项目

    用Buildout来构建Python项目   什么是Buildout (Remixed by Matt Hamilton, original from http://xkcd.com/303) Bui ...

  4. 静态static最基础的知识

    static静态: 常见修饰的内容: 1.变量: 修饰变量时,叫静态变量或类变量.此变量为类所有随着虚拟机加载类是而加载入方法区,此静态变量为该类所有对象共享,在内存中只有一个副本,它 当且仅当 类的 ...

  5. Redis04——Redis常见语法

    Redis语法 1.string select db 选择数据库(0-20) set k v 设置一个数据 set k1 v nx nx仅仅可以新建的时候进行插入数据 set k2 v xx xx仅仅 ...

  6. 22_5mybatis多表操作

    1.表之间的关系 一对多 多对一 一对一 多对多 举例: 用户和订单就是一对多 订单和用户就是多对一 一个用户可以下多个订单 多个订单属于同一个用户 人和身份证号就是一对一 一个人只能有一个身份证号 ...

  7. 如何保存ActionMailbox inbound HTML email和关于ActionText与ActiveStorage的附加

    gi代码: https://github.com/gorails-screencasts/action-mailbox-action-text/commit/3aeedc09441696c9489ed ...

  8. git fetch和pull的区别

    Git中从远程的分支获取最新的版本到本地有这样2个命令: 1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge   1 2 3 Git fetch origin master ...

  9. mysql解除锁表

    查看下在锁的事务 :SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX; 杀死进程id(就是上面命令的trx_mysql_thread_id列):kill 线程ID

  10. SSM项目无法解析JSP页面

    JSP页面显示标头<%@ page language="java" contentType="text/html; charset=UTF-8" page ...