• python时间日期处理


    一、模块介绍:

    1、time模块接近操作系统,模块中的大多数函数是调用了所在平台C library的同名函数,部分函数式平台相关的;基于Unix Timestamp,能表述的日期范围被限定在 1970 - 2038 之间。

    2、datetime模块整合了time模块的部分功能和日期相关函数,提供datetime类,更易调用。但是,类似sleep的函数没有包含进去。

    3、calendar模块提供了类似linux下强大的日历功能。

    二、time模块

    1、time.time() # 获取时间戳(float)

    1453431849.94

    int(1000 * time.time()) # 获取java中13位格式的时间戳

    注:python 拿当前的时间戳 秒数和毫秒数,time的经度跟系统相关,windows小数点后3位,linux后面6位

    2、time.ctime()  # 时间戳=>时间字符串

    Fri Jan 22 11:11:00 2016

    3、time.gmtime() # 时间戳=>UTC时区时间序列

        time.localtime() # 时间戳=>当前时区时间序列

    4、time.asctime(time.gmtime(time.time())) #时间序列=>时间字符串

    5、time.mktime()# 时间序列=>时间戳

    6、格式化

    dateFormateDay = "%Y%m%d"
    
    localTimeStr = time.strftime(dateFormateDay, time.localtime()) # time.struct_time => str
    
    localDate = time.strptime(localTimeStr, dateFormateDay) # str => time.struct_time

     

    注:在datetime模块,还有一种类型的格式化,但是参数类型和返回类型都不一样,新学习的人容易混淆。

     

    三、datetime模块

    datetime模块包含的主要对象:

    • timedelta  # 主要用于计算时间跨度
    • tzinfo         # 时区相关
    • time          # 只关注时间
    • date          # 只关注日期
    • datetime  # 同时有时间和日期

    1、datetime.datetime.now() # 获取当前时间,等同于datetime.datetime.today()

    2016-01-22 11:26:38.562000

    2、datetime.datetime.now() - datetime.timedelta(days = 1) # 获取昨天日期,相隔N天同理

    注:datetime.timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]]),参数最大单位到天

    3、遍历一个日期区间

        date1 = datetime.datetime(2015, 2, 15)
        date2 = datetime.datetime(2015, 3, 12)
        while date1 < date2:
            date1 += datetime.timedelta(days=1)

    4、格式化

        ss = "07/Jan/2016:12:26:11"
        # 转换为datetime.datetime类型
        ss_time =  datetime.datetime.strptime(ss, "%d/%b/%Y:%H:%M:%S")
        ss_str = ss_time.strftime("%Y-%m-%d:%H:%M:%S")

    5、遍历指定月份的日期

    def rangeMonth(year, month):
        firstDay = datetime.datetime(year, month, 1)
        dateList = []
        while firstDay.month == month:
            dateList.append(firstDay)
            firstDay += datetime.timedelta(days=1)
        return dateList

     

    四、calendar模块

    暂时还木有发现此模块的妙用, 先放着 --!!

    1、calendar.calendar(2016) # 返回一年日历,str类型

    2、calendar.month(2016, 1) # 返回一月日历

    3、calendar.monthcalendar(2016, 2)  # 返回这个月的以周为单位的日序列

    [[1, 2, 3, 4, 5, 6, 7], [8, 9, 10, 11, 12, 13, 14], [15, 16, 17, 18, 19, 20, 21], [22, 23, 24, 25, 26, 27, 28], [29, 0, 0, 0, 0, 0, 0]]

    4、calendar.monthrange(2016, 2) # 返回某个月的weekday的第一天和这个月的所有天数

    (0, 29) # 第一个参数不很理解,应该是和上面的函数一起使用

    5、calendar.isleap(2016) # 判断是否闰年

     

    五、格式化参数说明

    python中时间日期格式化符号:
    %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 当前时区的名称
    %% %号本身

    参考:

    1、http://www.jb51.net/article/75364.htm

    2、http://www.cnblogs.com/hongten/archive/2013/08/07/hongten_python_calendar.html

  • 相关阅读:
    Google Code 项目代码托管网站上 Git 版本控制系统使用简明教程
    C/C++预定义宏
    使用 Raspberry Pi 远程桌面
    Vim 中将 tab 自动转换成空格
    DR模式搭建LVS负载均衡
    NAT模式LVS搭建负载均衡集群
    php扩展memached安装
    raw_input与input的区别
    keepalived+lvs搭建高可用负载均衡集群
    使用keepalived搭建nginx高可用
  • 原文地址:https://www.cnblogs.com/Hughzm/p/5150810.html
Copyright © 2020-2023  润新知