python date,datetime 和time的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python date,datetime 和time的区别相关的知识,希望对你有一定的参考价值。

1,date是日期,通常就是日历上的年月日,比较大一点的时间单位。
2,time通常就是指秒钟数,即从1970年1月1日至今进过的秒钟数。或者指一天中的时分秒,比较小一点的时间单位。就像你问别人What\'s the time,别人会告诉你几点几分,而不会告诉你年月日。
3,datetime就是年月日和时分秒,包含以上两者。

datetime模块是用来处理日期时间的,通常是用来进行计算日期,可以很方便的使用加减运算。而time模块主要是用来处理秒钟时间的,当然这个秒钟数也可以转化成日期,获取当前日期通常就是从这个模块获取的。不过说time时,有时候表示的也会很宽泛,因为它的词义就是时间嘛,这个不用太计较的。不过date的意义是确定无疑的。
参考技术A

这是三个不同类型的数据,例如 2015-11-21 10:51:20:

    date是日期,表示的是 2015-11-21;

    datetime是日期时间,表示的是 2015-11-21 10:51:20;

    time是时间,表示的是 10:51:20。

参考技术B datetime模块定义了下面这几个类:
datetime.date:表示日期的类。常用的属性有year, month, day;
datetime.time:表示时间的类。常用的属性有hour, minute, second, microsecond;
datetime.datetime:表示日期时间。
date类
date类表示一个日期。日期由年、月、日组成(地球人都知道~~)。date类的构造函数如下:
class datetime.date(year, month, day):参数的意义就不多作解释了,只是有几点要注意一下:
year的范围是[MINYEAR, MAXYEAR],即[1, 9999];
month的范围是[1, 12]。(月份是从1开始的,不是从0开始的~_~);
day的最大值根据给定的year, month参数来决定。例如闰年2月份有29天;
date类定义了一些常用的类方法与类属性,方便我们操作:
date.max、date.min:date对象所能表示的最大、最小日期;
date.resolution:date对象表示日期的最小单位。这里是天。
date.today():返回一个表示当前本地日期的date对象;
date.fromtimestamp(timestamp):根据给定的时间戮,返回一个date对象;
datetime.fromordinal(ordinal):将Gregorian日历时间转换为date对象;
Time类
time类表示时间,由时、分、秒以及微秒组成。(我不是从火星来的~~)time类的构造函数如下:
class datetime.time(hour[, minute[, second[, microsecond[, tzinfo]]]]) :各参数的意义不作解释,这里留意一下参数tzinfo,它表示时区信息。注意一下各参数的取值范围:hour的范围为[0, 24),minute的范围为[0, 60),second的范围为[0, 60),microsecond的范围为[0, 1000000)。
time类定义的类属性:
time.min、time.max:time类所能表示的最小、最大时间。其中,time.min = time(0, 0, 0, 0), time.max = time(23, 59, 59, 999999);
time.resolution:时间的最小单位,这里是1微秒;
datetime类
datetime是date与time的结合体,包括date与time的所有信息。它的构造函数如下:datetime.datetime(year, month, day[, hour[, minute[, second[, microsecond[, tzinfo]]]]]),各参数的含义与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对象;

Python 基础 - 4.2 datetime模块

datetime模块

相比于time模块,datetime模块的接口则更直观、更容易调用

datetime模块定义了下面这几个类:

  • datetime.date:表示日期的类。常用的属性有year, month, day;
  • datetime.time:表示时间的类。常用的属性有hour, minute, second, microsecond;
  • datetime.datetime:表示日期时间。
  • datetime.timedelta:表示时间间隔,即两个时间点之间的长度。
  • datetime.tzinfo:与时区有关的相关信息。(这里不详细充分讨论该类,感兴趣的童鞋可以参考python手册)

我们需要记住的方法仅以下几个:

  1. d=datetime.datetime.now() 返回当前的datetime日期类型
d.timestamp(),d.today(), d.year,d.timetuple()等方法可以调用

2.datetime.date.fromtimestamp(322222) 把一个时间戳转为datetime日期类型

3.时间运算

>>> datetime.datetime.now()

datetime.datetime(2017, 10, 1, 12, 53, 11, 821218)

>>> datetime.datetime.now() + datetime.timedelta(4) #当前时间 +4天

datetime.datetime(2017, 10, 5, 12, 53, 35, 276589)

>>> datetime.datetime.now() + datetime.timedelta(hours=4) #当前时间+4小时

datetime.datetime(2017, 10, 1, 16, 53, 42, 876275)

4.时间替换

>>> d.replace(year=2999,month=11,day=30)

datetime.date(2999, 11, 30)

以上是关于python date,datetime 和time的区别的主要内容,如果未能解决你的问题,请参考以下文章

datatime

Python标准库datetime之date模块详解

python datetime 模块常用方法小结

python的date和datetime模块

Python之日期与时间处理模块(date和datetime)

Python之日期与时间处理模块(date和datetime)