Summary module common method python datetime

The method is intended in python datetime conventional recording module

1. datetime module

datatime module repackaged time module to provide more interfaces provide class has: date, time, datetime, timedelta, tzinfo.

1.1 date class

datetime.date(year, month, day)

常用方法和属性:
date.max、date.min:date对象所能表示的最大、最小日期;
date.resolution:date对象表示日期的最小单位。这里是天。
date.today():返回一个表示当前本地日期的date对象;
date.fromtimestamp(timestamp):根据给定的时间戮,返回一个date对象;

1.2 time class

datetime.time(hour[ , minute[ , second[ , microsecond[ , tzinfo] ] ] ] )

time.min、time.max:time类所能表示的最小、最大时间。其中,time.min = time(0, 0, 0, 0), time.max = time(23, 59, 59, 999999);
time.resolution:时间的最小单位,这里是1微秒;
t1 = datetime.time(15,20,50)#time对象
t1.hour、t1.minute、t1.second、t1.microsecond:时、分、秒、微秒;
t1.tzinfo:时区信息;
t1.replace([ hour[ , minute[ , second[ , microsecond[ , tzinfo] ] ] ] ] ):创建一个新的时间对象,用参数指定的时、分、秒、微秒代替原有对象中的属性(原有对象仍保持不变);
t1.isoformat():返回型如"HH:MM:SS"格式的字符串表示;
t1.strftime(fmt):同time模块中的format;

1.3 datetime class

datetime corresponding to date and time together.

datetime.datetime (year, month, day[ , hour[ , minute[ , second[ , microsecond[ , tzinfo] ] ] ] ] )

datetime.today():返回一个表示当前本地时间的datetime对象;
datetime.now([tz]):返回一个表示当前本地时间的datetime对象,如果提供了参数tz,则获取tz参数所指时区的本地时间;
datetime.utcnow():返回一个当前utc时间的datetime对象;#格林威治时间
datetime.fromtimestamp(timestamp[, tz]):根据时间戮创建一个datetime对象,参数tz指定时区信息;
datetime.utcfromtimestamp(timestamp):根据时间戮创建一个datetime对象;
datetime.combine(date, time):根据date和time,创建一个datetime对象;
datetime.strptime(date_string, format):将格式字符串转换为datetime对象;

1.4 hours delta 类

Add or subtract, using timedelta can easily make on day Days date, hour hours, minutes, seconds, milliseconds, subtle time calculation.

#coding:utf-8
import datetime

now = datetime.datetime.now() # 获取当前时间  2020-02-16 15:20:01.752000
# 获取前一小时
before_one_hour = now + datetime.timedelta(hours=-1)
print before_one_hour

# 根据指定格式获取获取前一小时
print before_one_hour.strftime('%Y-%m-%d %H') # 2020-02-16 14

#获取前一天
before_one_day = now + datetime.timedelta(days=-1)
print before_one_day

# 获取明天
after_one_day = now + timedelta(days=1)
print after_one_day

1.5 tzinfo 类

#! /usr/bin/env python
# coding=utf-8

from datetime import datetime, tzinfo,timedelta

"""
tzinfo 是一个关于时区信息的抽象类,无法直接实例化,通过继承来实现
"""
class UTC(tzinfo):
    """UTC"""
    def __init__(self,offset = 0):
        self._offset = offset

    def utcoffset(self, dt):
        return timedelta(hours=self._offset)

    def tzname(self, dt):
        return "UTC +%s" % self._offset

    def dst(self, dt):
        return timedelta(hours=self._offset)

#北京时间
beijing = datetime(2020,02,16,0,0,0,tzinfo=UTC(8))
print "beijing time:",beijing
#曼谷时间
bangkok = datetime(2020,02,16,0,0,0,tzinfo=UTC(7))
print "bangkok time",bangkok
#北京时间转成曼谷时间
print "beijing time transfer to bangkok time:",beijing.astimezone(UTC(7))

#计算时间差时也会考虑时区的问题
timespan = beijing - bangkok
print "时差:",timespan

#输出
beijing time: 2020-02-16 00:00:00+08:00
bangkok time 2020-02-16 00:00:00+07:00
beijing time transfer to bangkok time: 2020-02-15 23:00:00+07:00
时差: -1 day, 23:00:00

Guess you like

Origin www.cnblogs.com/gaozhidao/p/12317049.html