python的datetime模块

一 Python 中 日期类型 与字符串互转的问题

  • 1  字符串  转成 datetime 类型
  • 2  datetime 类型 转成 字符串

二  日期相加减的问题

三 datetime模块

 

1.datetime中的常量

  • datetime.MINYEAR,表示datetime所能表示的最小年份,MINYEAR = 1。
  • datetime.MAXYEAR,表示datetime所能表示的最大年份,MAXYEAR = 9999。

2.datetime中的类

  • datetime.date:表示日期的类。常用的属性有year, month, day;
  • datetime.time:表示时间的类。常用的属性有hour, minute, second, microsecond;
  • datetime.datetime:表示日期时间。
  • datetime.timedelta:表示时间间隔,即两个时间点之间的长度。
  • datetime.tzinfo:与时区有关的相关信息。

3.date类 
date类表示一个由年、月、日组成的日期。 


①类方法与类属性 
date类定义了一些常用的类方法与类属性,方便我们操作:

  • date.max、date.min:date对象所能表示的最大、最小日期;
  • date.resolution:date对象表示日期的最小单位。这里是天。
  • date.today():返回一个表示当前本地日期的date对象;
  • date.fromtimestamp(timestamp):根据给定的时间戮,返回一个date对象;
  • datetime.fromordinal(ordinal):将Gregorian日历时间转换为date对象;(Gregorian Calendar :一种日历表示方法,类似于我国的农历,西方国家使用比较多,此处不详细展开讨论。)

②实例方法和属性 
date提供的实例方法和属性:

  • date.year、date.month、date.day:年、月、日;
  • date.replace(year, month,day):生成一个新的日期对象,用参数指定的年,月,日代替原有对象中的属性。(原有对象仍保持不变)
  • date.timetuple():返回日期对应的time.struct_time对象;
  • date.toordinal():返回日期对应的Gregorian Calendar日期;
  • date.weekday():返回weekday,如果是星期一,返回0;如果是星期2,返回1,以此类推;
  • data.isoweekday():返回weekday,如果是星期一,返回1;如果是星期2,返回2,以此类推;
  • date.isocalendar():返回格式如(year,month,day)的元组;
  • date.isoformat():返回格式如’YYYY-MM-DD’的字符串;
  • date.strftime(fmt):自定义格式化字符串。在下面详细讲解。

③date支持的其他操作

  • date2 = date1 + timedelta #日期加上一个间隔,返回一个新的日期对象)
  • date2 = date1 - timedelta #日期隔去间隔,返回一个新的日期对象
  • timedelta = date1 - date2 #两个日期相减,返回一个时间间隔对象
  • date1 < date2 #两个日期进行比较

4.Time类 
time类表示时间,由时、分、秒以及微秒组成。 
①time类定义的类属性

  • time.min、time.max:time类所能表示的最小、最大时间。其中,time.min = time(0, 0, 0, 0),time.max = time(23, 59, 59, 999999);
  • time.resolution:时间的最小单位,这里是1微秒;

②time类提供的实例方法和属性

  • time.hour、time.minute、time.second、time.microsecond:时、分、秒、微秒;
  • time.tzinfo:时区信息;
  • time.replace([ hour[ , minute[ , second[ ,microsecond[ , tzinfo] ] ] ] ] ):创建一个新的时间对象,用参数指定的时、分、秒、微秒代替原有对象中的属性(原有对象仍保持不变);
  • time.isoformat():返回型如”HH:MM:SS”格式的字符串表示;
  • time.strftime(fmt):返回自定义格式化字符串。在下面详细介绍;

像date一样,也可以对两个time对象进行比较,或者相减返回一个时间间隔对象。

5.datetime类 
datetime是date与time的结合体,包括date与time的所有信息。 
①datetime类定义的类属性与方法

  • datetime.min、datetime.max:datetime所能表示的最小值与最大值;
  • datetime.resolution:datetime最小单位;
  • 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对象;

②datetime类提供的实例方法与属性

  • datetime.year、month、day、hour、minute、second、microsecond、tzinfo:年、月、日、时、分、秒、毫秒、时区;
  • datetime.date():获取date对象。
  • datetime.time():获取time对象。
  • datetime. replace([ year[ , month[ , day[ , hour[ , minute[ , second[ , microsecond[ ,tzinfo] ] ] ] ] ] ] ]): 返回一个替换了指定日期时间字段的新datetime对象。
  • datetime.timetuple ():返回一个时间元素, 等价于time.localtime()。
  • datetime. utctimetuple():返回UTC时间元组对象, 等价于time.localtime()。
  • datetime. toordinal ():返回日期对应的Gregorian Calendar 日期。
  • datetime. weekday ():返回 0 ~ 6 表示星期几(星期一是0,依此类推)。
  • datetime. isocalendar ():返回一个三元组格式 (year, month, day)。
  • datetime. isoformat ([ sep] ):返回一个 ISO 8601 格式的日期字符串,如 “YYYY-MM-DD”的字符串。
  • datetime. ctime():返回一个日期时间的C格式字符串,等效于time.ctime(time.mktime(dt.timetuple()));
  • datetime. strftime (format):返回自定义格式化字符串表示日期。

像date一样,也可以对两个datetime对象进行比较,或者相减返回一个时间间隔对象,或者日期时间加上一个间隔返回一个新的日期时间对象。 
6.timedelta与tzinfo类 
①timedelta类 
datetime.timedelta对象代表两个时间之间的的时间差,两个date或datetime对象相减时可以返回一个timedelta对象。 
timedelta包含数据days、seconds、microseconds,表示天数、秒数、微秒数,包含方法total_seconds() ,表示时间间隔的总秒数。 
②tzinfo类 
tzinfo:与时区有关的相关信息。

一些具体案例情况

"""
时间模块的demo
这里主要介绍了
1.字符串 转成 datetime 类型
2.datetime 类型 转成 字符串
"""

# 字符串  转成 datetime 类型
"""
def strptime(cls, date_string, format):pass 这个函数 需要传入两个参数 date_string 即日期字符串, format 即日期的格式
"""
import datetime
datestr1 = '2017-03-28'
datestr2 = '2017-03-31'
date1 = datetime.datetime.strptime(datestr1, '%Y-%m-%d')
date2 = datetime.datetime.strptime(datestr2, '%Y-%m-%d')
diff_days = (date2 - date1)
diff_days = (date2 - date1).days
print(diff_days)
print(date1.year)
print(type(datestr1))
print('---------------------------------------------')

结果如下:
3
2017
<class 'str'>
---------------------------------------------

"""
def strftime(self, fmt: Union[str, unicode]) -> str: ...
"""
# datetime 类型 转成 字符串
import datetime
date_0 = datetime.datetime.now()
datestr = date_0.strftime('%Y-%m-%d')
datestr2 = str(date_0)
dt, _ = datestr2.split('.')
print(date_0)
print(datestr)
print(datestr2)
print(dt)
print(type(date_0))
print('---------------------------------------------')
结果如下:
2018-07-17 13:12:26.216551
2018-07-17
2018-07-17 13:12:26.216551
2018-07-17 13:12:26
<class 'datetime.datetime'>
---------------------------------------------

"""
日期相加减的问题
在datetime模块,有一个类 timedelta 来进行日期的相加减操作 
delta:希腊语字母表第四字母δ,[数]变量增量
"""

from  datetime import datetime,date,time,timedelta
dt = datetime(2018, 3, 1, 19, 40, 30)
dt = datetime(2018, 3, 1, 19, 40, 30, 356102)
print(dt,type(dt))
结果如下:
2018-03-01 19:40:30.356102 <class 'datetime.datetime'>

#1. 一个日期 向前或向后推迟几天
dt2 = dt+timedelta(days=5)
print(dt2)
#1. 一个日期 向前或向后推迟几小时
now = datetime.now()
print(now)
hours = timedelta(hours=3)
next = now+hours
print(next)
结果如下:
2018-03-06 19:40:30.356102
2018-07-17 13:12:26.216551
2018-07-17 16:12:26.216551

#3  同理 还可以支持  seconds , milliseconds,minutes,weeks 分别是 秒 ,毫秒, 分钟, 周...

def __new__(cls, days=None, seconds=None, microseconds=None, milliseconds=None, minutes=None,
            hours=None, weeks=None): # known case of datetime.timedelta.__new__)
   pass

 参考完档:

https://blog.csdn.net/yl2isoft/article/details/52077991

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Python datetime模块是用于处理日期和时间的模块。它提供了各种类和函数来处理日期、时间、时间间隔、时区等。 datetime模块中最常用的类是datetime类,它表示一个日期和时间的对象。datetime类的构造函数可以接受年、月、日、时、分、秒和微秒等参数,也可以从字符串中解析出日期和时间。 下面是一些常用的datetime类的方法: - datetime.today():返回表示当前日期和时间的datetime对象。 - datetime.now():返回表示当前日期和时间的datetime对象,可选参数tz指定时区。 - datetime.strptime(date_string, format):将字符串解析为datetime对象,format指定字符串的格式。 - datetime.strftime(format):将datetime对象格式化为字符串,format指定输出的格式。 - datetime.date():返回datetime对象的日期部分,即date对象。 - datetime.time():返回datetime对象的时间部分,即time对象。 - datetime.replace(year, month, day, hour, minute, second, microsecond):返回一个新的datetime对象,替换指定的年、月、日、时、分、秒和微秒。 - datetime.timedelta(days, seconds, microseconds, milliseconds, minutes, hours, weeks):表示一个时间间隔,可以用来进行日期的加减。 除了datetime类,还有datetimetimedelta等类,它们分别表示日期、时间和时间间隔。例如,date类的构造函数可以接受年、月、日等参数,可以从datetime对象中获取日期部分,还提供了strftimetimedelta等方法。time类和datetime类类似,但只表示时间部分。timedelta类表示时间间隔,可以进行加减运算。 datetime模块还提供了timezone类,用于表示时区信息。可以通过pytz模块获取时区信息,然后使用timezone类创建时区对象。datetime对象可以使用astimezone方法转换时区。 下面是一些常用的timezone类的方法: - timezone.utc:表示UTC时区。 - timezone(timedelta, name=None):表示偏移量为timedelta的时区,可选参数name指定时区的名称。 - pytz.timezone(name):获取名称为name的时区对象。 - tzinfo.utcoffset(dt):返回datetime对象dt在该时区下的UTC偏移量。 - tzinfo.dst(dt):返回datetime对象dt在该时区下的夏令时偏移量。 总之,datetime模块提供了丰富的功能和灵活的接口,可以方便地处理日期和时间相关的任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

且行且安~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值