python datetime 模块常用方法小结

旨在记录python 中 datetime 模块常用的方法

1. datetime 模块

datatime 模块重新封装了time模块,提供更多接口,提供的类有:date, time, datetime, timedelta, tzinfo。

1.1 date 类

datetime.date(year, month, day)

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

1.2 time 类

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 类

datetime相当于date和time结合起来。

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 timedelta类

时间加减,使用timedelta可以很方便的在日期上做天days,小时hour,分钟,秒,毫秒,微妙的时间计算。

#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

原文地址:https://www.cnblogs.com/gaozhidao/p/12317049.html

时间: 2024-10-24 11:28:50

python datetime 模块常用方法小结的相关文章

python time模块常用方法小结

Python time 模块常用方法小结 本文旨在记录 python 中 time 模块常用的方法. 1. time 模块常用的方法 获取当前系统时间的时间戳 import time # 返回当前时间的时间戳 time.time() 时间元组的概念 获取时间元组的方法: 接收时间戳(1970纪元后经过的浮点秒数)并返回当地时间下的时间元组t(t.tm_isdst可取0或1,取决于当地当时是不是夏令时). time.localtime(time.time()) # 时间元组 time.struct

python sys 模块常用方法小结

旨在记录 python sys 模块的常用方法 sys 模块常用方法及属性 sys.argv: 接收外部传递的参数. sys.exit([arg]): 程序退出,arg 为 0 正常退出. sys.getdefaultencoding(): 获取系统当前编码,一般默认为ascii. sys.setdefaultencoding(): 设置系统默认编码,执行dir(sys)时不会看到这个方法,在解释器中执行不通过,可以先执行reload(sys),在执行 setdefaultencoding('u

python datetime模块用strftime 格式化时间

python datetime模块用strftime 格式化时间 ? Python 三大神器 这是最后一篇 #!usr/bin/python import datetime datetime.datetime.now() 这个会返回 microsecond.因此这个是我们不需要的.所以得做一下修改 datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") 格式化之后,就得到了我们常见的格式了. 附:strftime参数 strftime

python datetime模块用法

python datetime模块用法 1. 创建naive(无时区信息)的datetime对象 import datetime dt_utc = datetime.datetime.utcnow() dt_utc # datetime.datetime(2019, 2, 1, 10, 53, 34, 145034) dt_utc.tzinfo # None dt_local = datetime.datetime.now() dt_local.tzinfo # None # tzinfo为No

python datetime模块参数详解

Python提供了多个内置模块用于操作日期时间,像calendar,time,datetime.time模块,它提供 的接口与C标准库time.h基本一致.相比于time模块,datetime模块的接口则更直观.更容易调用. datetime模块定义了两个常量:datetime.MINYEAR和datetime.MAXYEAR,分别表示datetime所能表示的最 小.最大年份.其中,MINYEAR = 1,MAXYEAR = 9999. datetime模块定义了下面这几个类: datetim

python datetime模块详解

Python提供了多个内置模块用于操作日期时间,像calendar,time,datetime.time模块我在之前的文章已经有所介绍,它提供 的接口与C标准库time.h基本一致.相比于time模块,datetime模块的接口则更直观.更容易调用.今天就来讲讲datetime模块. datetime模块定义了两个常量:datetime.MINYEAR和datetime.MAXYEAR,分别表示datetime所能表示的最 小.最大年份.其中,MINYEAR = 1,MAXYEAR = 9999

Python datetime模块的介绍

datetime模块常用的主要有下面这四个类:(要清楚import datetime : 导入的是datetime这个包,包里有各种类) 1. datetime.date   用于表示年月日构成的日期 2. datetime.time   用于表示时分秒微妙构成的一天24小时中的具体时间 3.  datetime.datetime   上面两个合在一起  既包含时间有包含日期 4.  datetime.timedelta   用来创建时间间隔对象,用于加减时间 一.首先着重写一下datetime

Python ConfigParser模块常用方法示例

 在程序中使用配置文件来灵活的配置一些参数是一件很常见的事情,配置文件的解析并不复杂,在Python里更是如此,在官方发布的库中就包含有做这件事情的库,那就是ConfigParser,这里简单的做一些介绍.      Python ConfigParser模块解析的配置文件的格式比较象ini的配置文件格式,就是文件中由多个section构成,每个section下又有多个配置项,比如:      [db]     db_host=192.168.1.1    db_port=3306    db_

python datetime模块的timedelta

如果你想知道30天前是几月几号,或者是100天以前,就可以使用datetime模块的timedelta,看下面的例子: >>> import datetime >>> datetime.datetime.now() datetime.datetime(2016, 1, 14, 17, 56, 3, 493000) >>> datetime.datetime.now() - datetime.timedelta(days = 100) datetime.