Python處理時間

Python 提供 time、datetime 和 calendar 模块可以用于格式化日期和时间

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值