python数据分析和可视化基础
- (一)Python 中处理日期和时间的模块
- time
- 导入time模块
- time获取当前时间戳
- localtime获取当前时间
- struct_time
- asctime获取格式化的时间
- ctime获取格式化的时间
- gmtime获取格式化的时间
- 计时器功能
- strftime格式化日期
- strptime格式化日期
- 格式化日期字符
- datetime
- 导入datetime
- 获取当前的日期时间
- 创建datetime对象
- 格式化时间
- 获取date日期类的属性
- 获取date日期类的实例方法
- 获取time时间类的属性
- 获取time时间类的实例方法
- 获取datetime日期时间类的属性
- 获取datetime日期时间类的类方法
- 获取datetime日期时间类的实例方法
- 获取间隔时间段后的datetime
- 获取当前时间几个小时前的datetime
- 获取所有时区
- 获取某月日历
(一)Python 中处理日期和时间的模块
time
time() 返回时间戳格式的时间 (相对于1.1 00:00:00以秒计算的偏移量)
ctime() 返回字符串形式的时间,可以传入时间戳格式时间,用来做转化
asctime() 返回字符串形式的时间,可以传入struct_time形式时间,用来做转化
localtime() 返回当前时间的struct_time形式,可传入时间戳格式时间,用来做转化
gmtime() 返回当前时间的struct_time形式,UTC时区(0时区) ,可传入时间戳格式时间,用来做转化
mktime(t) #执行与gmtime(), localtime()相反的操作,将UTC时区(0时区)的struct_time转换为一个Unix时间戳
strftime(format,t) 格式化日期
strptime(string[, format]) 根据指定的格式把一个时间字符串解析为时间元组
导入time模块
import time # 引入time模块
time获取当前时间戳
ticks = time.time()
print ("当前时间戳为:", ticks)
当前时间戳为: 1707551283.5884776
localtime获取当前时间
localtime = time.localtime()
localtime = time.localtime(time.time())
print ("本地时间为 :", localtime)
本地时间为 : time.struct_time(tm_year=2024, tm_mon=2, tm_mday=10, tm_hour=15, tm_min=51, tm_sec=5, tm_wday=5, tm_yday=41, tm_isdst=0)
struct_time
struct_time时间元组,为结构化数据,共有九个元素
tm_year(年) 2023
tm_mon(月) 1~12
tm_mday(日) 1~31
tm_hour(时) 0~23
tm_min(分) 0~59
tm_sec(秒) 0~61(60或61 是闰秒)
tm_wday(weekday) 0~6
tm_yday(一年中的第几天) 1~366
tm_isdst(是否是夏令时) -1
print(t.tm_year)
print(t.tm_mon)
print(t.tm_mday)
print(t.tm_hour)
print(t.tm_min)
print(t.tm_sec)
print(t.tm_wday)
print(t.tm_yday)
print(t.tm_isdst)
2024
2
10
19
47
51
5
41
0
asctime获取格式化的时间
localtime = time.asctime()
localtime = time.asctime(localtime = time.localtime(time.time()))
print ("本地时间为 :", localtime)
本地时间为 : Sat Feb 10 15:52:22 2024
ctime获取格式化的时间
localtime = time.ctime()
localtime = time.ctime(localtime = time.localtime(time.time()))
print ("本地时间为 :", localtime)
本地时间为 : Sat Feb 10 15:57:37 2024
gmtime获取格式化的时间
localtime = time.gmtime()
localtime = time.gmtime(time.time())
print ("本地时间为 :", localtime)
本地时间为 : time.struct_time(tm_year=2024, tm_mon=2, tm_mday=10, tm_hour=7, tm_min=59, tm_sec=37, tm_wday=5, tm_yday=41, tm_isdst=0)
计时器功能
线程推迟指定的时间运行。单位为秒
time.sleep(secs)
strftime格式化日期
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
2024-02-10 16:28:17
strptime格式化日期
print(time.strptime('2024-02-10 16:07:28', '%Y-%m-%d %H:%M:%S'))
time.struct_time(tm_year=2024, tm_mon=2, tm_mday=10, tm_hour=16, tm_min=7, tm_sec=28, tm_wday=5, tm_yday=41, tm_isdst=-1)
格式化日期字符
datetime
datetime中存在以下这些类
导入datetime
from datetime import datetime
from datetime import datet
from datetime import time
获取当前的日期时间
print(datetime.now())
2024-02-10 16:35:11.185172
创建datetime对象
from datetime import datetime
date = datetime.now()
print(date)
2024-02-10 16:36:40.044294
格式化时间
from datetime import datetime
DataTime = datetime.now()
Ctime = DataTime.strftime("%H:%M:%S")
print("现在的时刻", Ctime)
获取date日期类的属性
from datetime import date
today = date.today()
print('today:', today) #返回日期
print('.year:', today.year) #返回年
print('.month:', today.month) #返回月
print('.day:', today.day) #返回日
2024-02-10
2024
2
10
获取date日期类的实例方法
print(date.today().replace(year=2020, month=1, day=1)) #生成一个新的日期对象
print(date.today().timetuple())
print(date.today().toordinal())
print(date.today().weekday())
print(date.today().isoweekday())
print(date.today().isocalendar())
print(date.today().isoformat())
print(date.today().strftime('%Y/%m/%d'))
2020-01-01
time.struct_time(tm_year=2024, tm_mon=2, tm_mday=10, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=41, tm_isdst=-1)
738926
5
6
datetime.IsoCalendarDate(year=2024, week=6, weekday=6)
2024-02-10
2024/02/10
获取time时间类的属性
from datetime import time
t = time(20, 5, 40, 8888)
t = time(hour=20, minute=5, second=40, microsecond=8888)
print("小时 ",time.hour)
print("分钟 ",time.minute)
print("秒 ",time.second)
print("微秒 ",time.microsecond)
获取time时间类的实例方法
from datetime import timet = time(hour=20, minute=5, second=40, microsecond=8888)
print(t.isoformat())
print(t.strftime('%H%M%S'))
print(t.replace(hour=18, minute=25, second=30, microsecond=6666))
获取datetime日期时间类的属性
from datetime import datetime
DataTime = datetime.now()
print("年 ", DataTime.year) # Output: 年 2022
print("月 ", DataTime.month) # Output: 月 3
print("日 ", DataTime.day) # Output: 日 28
print("小时 ", DataTime.hour) # Output: 小时 10
print("分钟 ", DataTime.minute) # Output: 分钟 51
print("秒 ", DataTime.second) # Output: 秒 13
print("微秒 ",now.microsecond) # Output: 微秒 79841
获取datetime日期时间类的类方法
from datetime import datetime, timezone,date,time
import timet = time
print(datetime.now())
print(datetime.today())
print(datetime.now(timezone.utc))
datetime.fromtimestamp(time.time())
print(datetime.strptime('2017/02/04 20:49', '%Y/%m/%d %H:%M'))
print(datetime.combine(date(2023, 5, 6),time(20, 5, 40, 8888))) #合并
2024-02-10 19:41:48.035769
2024-02-10 19:41:48.035769
2024-02-10 11:41:48.035769+00:00
2017-02-04 20:49:00
2023-05-06 20:05:40.008888
获取datetime日期时间类的实例方法
now = datetime.now()
print(now.replace(year=2019, month=12, day=5, hour=23, minute=59, second=30, microsecond=59))
print(now.isoformat())
print(now.isocalendar())
print(now.weekday())
print(now.timetuple())
print(now.utctimetuple())
print(now.strftime("%Y%m%d %H:%M:%S.%f"))
print(now.toordinal())
print(now.date())
print(now.time())
print(now.timetz())
print(now.ctime())
2019-12-05 23:59:30.000059
2024-02-10T19:17:55.243001
datetime.IsoCalendarDate(year=2024, week=6, weekday=6)
5
time.struct_time(tm_year=2024, tm_mon=2, tm_mday=10, tm_hour=19, tm_min=17, tm_sec=55, tm_wday=5, tm_yday=41, tm_isdst=-1)
time.struct_time(tm_year=2024, tm_mon=2, tm_mday=10, tm_hour=19, tm_min=17, tm_sec=55, tm_wday=5, tm_yday=41, tm_isdst=0)
20240210 19:17:55.243001
738926
2024-02-10
19:17:55.243001
19:17:55.243001
Sat Feb 10 19:17:55 2024
获取间隔时间段后的datetime
获取当前时间后一天的datetime对象(明天的datetime对象)
from datetime import datetime
from datetime import timedeltanow = datetime.now()
dt = now + timedelta(days=1)print(now)
print(dt)
2024-02-10 19:52:42.830384
2024-02-11 19:52:42.830384
使用timedelta,可以用于增量计算,参数days表示间隔多少天。
如果是计算昨天,直接减掉就可以了。
获取当前时间几个小时前的datetime
from datetime import datetime
from datetime import timedeltanow = datetime.now()
dt = now - timedelta(hours=6)print(now)
print(dt)
2024-02-10 19:53:02.775604
2024-02-10 13:53:02.775604
获取所有时区
import pytz
zones = pytz.all_timezones
print(zones)
['Africa/Abidjan', 'Africa/Accra', 'Africa/Addis_Ababa', 'Africa/Algiers', 'Africa/Asmara', 'Africa/Asmera'.........
获取某月日历
import calendarcal = calendar.month(2016, 1)
print("以下输出2016年1月份的日历:")
print(cal)
以下输出2016年1月份的日历:January 2016
Mo Tu We Th Fr Sa Su1 2 34 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31