zoukankan      html  css  js  c++  java
  • python3之datetime模块

    生成时间

    注意微秒不能是浮点数

      1: import datetime
    
      2: t = datetime.time(1, 2, 3, 4)
    
      3: print(t.hour, t.minute, t.second, t.microsecond, t.tzinfo)
    
      4: print(datetime.time.min)
    
      5: print(datetime.time.max)

    结果

      1: 1 2 3 4 None
    
      2: 00:00:00
    
      3: 23:59:59.999999

    或者datetime.datetime.now() 返回当前的datetime日期类型

      1: import datetime
    
      2: print(datetime.datetime.now())

    结果:

      1: 2019-01-30 18:18:51.298951

    这样就有,d.timestamp(),d.today(), d.year,d.timetuple()等方法可以调用

    生成日期

    方法1:直接生成当前日期

      1: import datetime
    
      2: t = datetime.date.today()
    
      3: print(t)
    
      4: print(t.year, t.month, t.day)

    结果

      1: 2019-01-30
    
      2: 2019 1 30

    方法2:由时间戳或者Gregorian日历来生成

      1: import datetime
    
      2: import time
    
      3: 
    
      4: t = 733114
    
      5: print(datetime.date.fromordinal(t))
    
      6: t1 = time.time()
    
      7: print(datetime.date.fromtimestamp(t1))
    
      8: 
    
      9: print(datetime.date.min)
    
     10: print(datetime.date.max)
    
     11: # 最低的单位
    
     12: print(datetime.date.resolution)

    结果:

      1: 2008-03-13
    
      2: 2019-01-30
    
      3: 0001-01-01
    
      4: 9999-12-31
    
      5: 1 day, 0:00:00

    方法3:由现有时间创建

      1: import datetime
    
      2: 
    
      3: d1 = datetime.date(2008, 3, 29)
    
      4: print(d1.ctime())
    
      5: d2 = d1.replace(year=2019, month=1, day=30)
    
      6: print(d2)
    
      7: print(d2.ctime())

    结果:

      1: Sat Mar 29 00:00:00 2008
    
      2: 2019-01-30
    
      3: Wed Jan 30 00:00:00 2019

    时间的计算

      1: import datetime
    
      2: today = datetime.date.today()
    
      3: print("today:", today)
    
      4: one_day = datetime.timedelta(days=1)
    
      5: yesterday = today - one_day
    
      6: tomorrow = today + one_day
    
      7: print("yesterday:", yesterday)
    
      8: print("tomorrow:", tomorrow)
    
      9: # 也支持浮点数
    
     10: one_point_five_day = one_day * 1.5

    结果

      1: today: 2019-01-30
    
      2: yesterday: 2019-01-29
    
      3: tomorrow: 2019-01-31

    时间的比较

      1: import datetime
    
      2: t1 = datetime.time(12, 55, 0)
    
      3: t2 = datetime.time(13, 55, 0)
    
      4: if t1 < t2:
    
      5:     print("lasted time:", t2)
    
      6: 
    
      7: d1 = datetime.date.today()
    
      8: d2 = datetime.date.today() + datetime.timedelta(days=1)
    
      9: if d1 < d2:
    
     10:     print("lasted date:", d2)

    结果:

      1: lasted time: 13:55:00
    
      2: lasted date: 2019-01-31

    格式化和解析

    默认格式:YYYY-MM-DDTHH:MM:SS.mmmmm

    可以用strftime()生成其他格式,strptime可以将格式化的字符串转化成datetime实例

      1: import datetime
    
      2: 
    
      3: today = datetime.datetime.today()
    
      4: format = "%a %b %d %H:%M:%S %Y"
    
      5: s = today.strftime(format)
    
      6: print("strftime:", s)
    
      7: d = datetime.datetime.strptime(s, format)
    
      8: print("strptime:", d)
    
      9: print("strptime->strftime:", d.strftime(format))

    结果:

      1: strftime: Wed Jan 30 18:38:53 2019
    
      2: strptime: 2019-01-30 18:38:53
    
      3: strptime->strftime: Wed Jan 30 18:38:53 2019

    所有格式化符号如下:

    • %y 两位数的年份表示(00-99)
    • %Y 四位数的年份表示(000-9999)
    • %m 月份(01-12)
    • %d 月内中的一天(0-31)
    • %H 24小时制小时数(0-23)
    • %I 12小时制小时数(01-12)
    • %M 分钟数(00=59)
    • %S 秒(00-59)
    • %a 本地简化星期名称
    • %A 本地完整星期名称
    • %b 本地简化的月份名称
    • %B 本地完整的月份名称
    • %c 本地相应的日期表示和时间表示
    • %j 年内的一天(001-366)
    • %p 本地A.M.或P.M.的等价符
    • %U 一年中的星期数(00-53)星期天为星期的开始
    • %w 星期(0-6),星期天为星期的开始
    • %W 一年中的星期数(00-53)星期一为星期的开始
    • %x 本地相应的日期表示
    • %X 本地相应的时间表示
    • %Z 当前时区的名称
    • %% %号本身

    时区

    建议使用模块pytz。

  • 相关阅读:
    以太坊智能合约 Solidity 的常用数据类型介绍
    使用 Browser-solidity 在 Go-Ethereum1.7.2 上进行简单的智能合约部署
    Linux学习笔记之vim中的替换功能
    深度学习笔记之为什么是SoftMax
    机器学习笔记之Jupyter Notebook各种使用方法
    机器学习笔记之TF-IDF原理及使用
    机器学习笔记之LATEX数学公式基本语法
    机器学习笔记之Anaconda中命令形式安装XGBoost(pip install)
    机器学习笔记之XGBoost实现对鸢尾花数据集分类预测
    ELK学习笔记之Elasticsearch和Kibana数据导出实战
  • 原文地址:https://www.cnblogs.com/haoqirui/p/10339406.html
Copyright © 2011-2022 走看看