1、时间戳转换为指定格式日期
import time t = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) print(t) timestamp = time.time() tuple_time = time.localtime(timestamp) print(tuple_time) print(time.strftime("%Y-%m-%d %H:%M:%S", tuple_time))
将字符串的时间转换为时间戳
import time import datetime time_str = "2023-02-19 23:07:21" time_struct = time.strptime(time_str, "%Y-%m-%d %H:%M:%S") print(time_struct) print(time.mktime(time_struct)) print(int(time.mktime(time_struct)))
3、Datetime详细介绍
Python提供了多个内置模块用于操作日期时间,像calendar,time,datetime。time模块我在之前的文章已经有所介绍,它提供 的接口与C标准库time.h基本一致。相比于time模块,datetime模块的接口则更直观、更容易调用。今天就来讲讲datetime模块。
datetime模块定义了两个常量:datetime.MINYEAR和datetime.MAXYEAR,分别表示datetime所能表示的最 小、最大年份。其中,MINYEAR = 1,MAXYEAR = 9999。(对于偶等玩家,这个范围已经足够用矣~~)
datetime模块定义了下面这几个类:
- datetime.date:表示日期的类。常用的属性有year, month, day;
- datetime.time:表示时间的类。常用的属性有hour, minute, second, microsecond;
- datetime.datetime:表示日期时间。
- datetime.timedelta:表示时间间隔,即两个时间点之间的长度。
- datetime.tzinfo:与时区有关的相关信息。(这里不详细充分讨论该类,感兴趣的童鞋可以参考python手册)
注 :上面这些类型的对象都是不可变(immutable)的。
下面详细介绍这些类的使用方式。
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对象;(Gregorian Calendar :一种日历表示方法,类似于我国的农历,西方国家使用比较多,此处不详细展开讨论。)
4、获得三天前的时间的方法
import time import datetime time_str = "2023-02-19 23:07:21" time_struct = time.strptime(time_str, "%Y-%m-%d %H:%M:%S") print(datetime.datetime.now()) computed_time = datetime.datetime.now() - datetime.timedelta(days=3) print(computed_time) timestamp = time.mktime(computed_time.timetuple()) print(timestamp) time_str = time.strftime("%Y-%m-%d %H:%M:%S", computed_time.timetuple()) print(time_str)
使用datetime模块来获取当前的日期和时间
import time import datetime time_str = "2023-02-19 23:07:21" time_struct = time.strptime(time_str, "%Y-%m-%d %H:%M:%S") currentDate = datetime.datetime.now() print(time.strftime("%Y-%m-%d %H:%M:%S", currentDate.timetuple())) print(currentDate.year) print(currentDate.month) print(currentDate.day) print(currentDate.hour) print(currentDate.minute) print(currentDate.second)