zoukankan      html  css  js  c++  java
  • 脚本中的时间函数

    时区

    • 北京时间与世界标准时间(UTC) 差别 (英語:Coordinated Universal Time,法語:Temps Universel Coordonné,简称UTC),快8个小时。
    In [31]: datetime.datetime.utcfromtimestamp(1172969203)
    Out[31]: datetime.datetime(2007, 3, 4, 0, 46, 43)
    
    In [32]: datetime.datetime.fromtimestamp(1172969203)
    Out[32]: datetime.datetime(2007, 3, 4, 8, 46, 43)
    
    In [33]: datetime.datetime.utcnow()
    Out[33]: datetime.datetime(2020, 10, 10, 2, 32, 30, 75856)
    
    In [34]: datetime.datetime.now()
    Out[34]: datetime.datetime(2020, 10, 10, 10, 32, 32, 632855)
    
    • 当前的时间戳 timestamp: time.time(). 返回格式:1602297835.24672。
    • time.time()表示在北京时间下,当前时间与 '1970-01-01 08:00:00'(等于time.localtime(0))相差秒数。

    time 模块

    def get_day(nday,fmt,bizdate=None): 
        import time
        t = time.time() if bizdate is None else time.mktime(time.strptime(bizdate, fmt))
        return time.strftime(fmt, time.localtime(t+nday*24*3600))  # time.gmtime
    
    time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime(time.time()) )
    time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()) )
    time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()) # ==
    
    

    python datetime模块

    • 获取时间差
    starttime = datetime.datetime.now()
    #long running
    endtime = datetime.datetime.now()
    print (endtime - starttime).seconds
    
    • 相对时间,与字符串互转
    lastday =(datetime.datetime.now() - datetime.timedelta(days=1)).strftime('%Y-%m-%d')
    datetime.datetime.strptime('2015-02-01','%Y-%m-%d')
    

    R

    today = Sys.Date()
    beginday = seq(today, length.out=2, by="-40 day")[2] 
    beginday = format(beginday, '%Y%m%d')
    
    dt1 = as.Date(as.character(dat1$date), '%Y%m%d')
    dt2 = as.Date('20150101', '%Y%m%d')
    flag_ = dt1  - dt2 >=-14 & dt1  - dt2 <= 0 
    

    在R中查看代码运行时间,用system.time

    linux

    OPTARG = '-1 day'
    date_str=$(date -d "$OPTARG" '+%Y%%%m%%%d%%')
    

    MAC OS X

    date_str=$(date -v-1d '+%Y%%%m%%%d%%')
    

    其他

    pandas 日期转化为秒, 算时间差. 注意有时区差, 第一个方法非常高效

    df.time = pd.to_datetime(df.time, format='%Y%m%d').astype(int) // int(1e9) 
    df.time = df.time.map(lambda dt: int(time.mktime(datetime.strptime(str(dt), "%Y%m%d").timetuple())))
    

    --- 她说, 她是仙,她不是神
  • 相关阅读:
    1093 Count PAT's(25 分)
    1089 Insert or Merge(25 分)
    1088 Rational Arithmetic(20 分)
    1081 Rational Sum(20 分)
    1069 The Black Hole of Numbers(20 分)
    1059 Prime Factors(25 分)
    1050 String Subtraction (20)
    根据生日计算员工年龄
    动态获取当前日期和时间
    对计数结果进行4舍5入
  • 原文地址:https://www.cnblogs.com/bregman/p/4270259.html
Copyright © 2011-2022 走看看