Python 提供 time、datetime 和 calendar 模块可以用于格式化日期和时间。
Python與時間
1.time
1.1 time.time 返回當前的时间戳
返回当前时间的时间戳(1970纪元后经过的浮点秒数)
import time
print(time.time())
1.2 mktime 轉換時間戳
import time
print(time.mktime(time.strptime("2012.6.18 8:59:59","%Y.%m.%d %H:%M:%S")))
1340009999.0
2. datetime 獲取系統時間
2.1 strptime && strftime
strptime()函数将时间转换成时间数组
strftime()函数重新格式化时间
How strftime() works?
時間字符串不能移動時間,包括增加、減少和其它功能性操作。只能對元組格式的時間進行操作,Python函数用一个元组装起来的9组数字处理时间。
YY_mm_dd_HH_MM_SS = "%Y-%m-%d %H:%M:%S";
##把時間字符串轉換成Dict和Tuple格式,格式必須與字符本身高度一致,否則無法轉換
time_mt_1 = datetime.datetime.strptime(time_mt, "%Y.%m.%d %H:%M")
##格式化成指定格式字符串時間
time_mt = datetime.datetime.strftime(time_mt_1 , YY_mm_dd_HH_MM_SS)
##增加時間
time_mt_1 +datetime.timedelta(seconds=59)
2.2 时区转换
from datetime import datetime
from datetime import timezone
from datetime import timedelta
# 世界标准时间
utc_time = datetime(2020,6,18,15,0,0)
# China Beijing UTC+8
cst_time =utc_time.astimezone(timezone(timedelta(hours=-8))).strftime("%Y-%m-%d %H:%M:%S")
print(cst_time)
2.3 當前時間的年、月、日、時分秒
这里是引用
from datetime import datetime
now = datetime.now() # current date and time
year = now.strftime("%Y")
print(“year:”, year)
month = now.strftime("%m")
print(“month:”, month)
day = now.strftime("%d")
print(“day:”, day)
time = now.strftime("%H:%M:%S")
print(“time:”, time)
date_time = now.strftime("%m/%d/%Y, %H:%M:%S")
print(“date and time:”,date_time)
3. Format Time Code List[^1]
The table below shows all the codes that you can pass to the strftime() method.
Directive Meaning Example
%a Abbreviated weekday name. Sun, Mon, …
%A Full weekday name. Sunday, Monday, …
%w Weekday as a decimal number. 0, 1, …, 6
%d Day of the month as a zero-padded decimal. 01, 02, …, 31
%-d Day of the month as a decimal number. 1, 2, …, 30
%b Abbreviated month name. Jan, Feb, …, Dec
%B Full month name. January, February, …
%m Month as a zero-padded decimal number. 01, 02, …, 12
%-m Month as a decimal number. 1, 2, …, 12
%y Year without century as a zero-padded decimal number. 00, 01, …, 99
%-y Year without century as a decimal number. 0, 1, …, 99
%Y Year with century as a decimal number. 2013, 2019 etc.
%H Hour (24-hour clock) as a zero-padded decimal number. 00, 01, …, 23
%-H Hour (24-hour clock) as a decimal number. 0, 1, …, 23
%I Hour (12-hour clock) as a zero-padded decimal number. 01, 02, …, 12
%-I Hour (12-hour clock) as a decimal number. 1, 2, … 12
%p Locale’s AM or PM. AM, PM
%M Minute as a zero-padded decimal number. 00, 01, …, 59
%-M Minute as a decimal number. 0, 1, …, 59
%S Second as a zero-padded decimal number. 00, 01, …, 59
%-S Second as a decimal number. 0, 1, …, 59
%f Microsecond as a decimal number, zero-padded on the left. 000000 - 999999
%z UTC offset in the form +HHMM or -HHMM.
%Z Time zone name.
%j Day of the year as a zero-padded decimal number. 001, 002, …, 366
%-j Day of the year as a decimal number. 1, 2, …, 366
%U Week number of the year (Sunday as the first day of the week). All days in a new year preceding the first Sunday are considered to be in week 0. 00, 01, …, 53
%W Week number of the year (Monday as the first day of the week). All days in a new year preceding the first Monday are considered to be in week 0. 00, 01, …, 53
%c Locale’s appropriate date and time representation. Mon Sep 30 07:06:05 2013
%x Locale’s appropriate date representation. 09/30/13
%X Locale’s appropriate time representation. 07:06:05
%% A literal ‘%’ character. %
[^1]Format Code List-www.programiz.com