zoukankan      html  css  js  c++  java
  • pandas之to_datetime时区转换

    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)
  • 相关阅读:
    所有的工作目录 都要svn_开头,并且要进行svn同步,你能保证你不删除,你保证不了非你!
    火狐删除配置文件 会删除目录下所有文件 切记不要把配置文件建立在桌面 恢复软件:易我数据恢复向导 9.0 DiskGenius500
    谷歌全屏脚本 start chrome.exe --kiosk http://www.baidu.com
    bat2exe 就是这么简单 白研究半天VC++了
    火狐加载用户配置文件 "C:XXXMozilla Firefoxfirefox.exe" http://192.168.1.1:8080 -profile ../kkk
    https://quotefancy.com/ 经典句子(英语) 真是特别好~
    (function(){})() 立即执行函数
    jekyll 将纯文本转化为静态网站和博客 静态网站生成器
    vue 发布build 本地设置 相对路径 两个地方 一个根目录用./ css文件里面用../../ 【也不好用,还是得手改】
    iview构建 初始化的时候不要装ESlint 太烦人了
  • 原文地址:https://www.cnblogs.com/zxpo/p/11844577.html
Copyright © 2011-2022 走看看