Python 时间处理
# 日期格式:
%a 星期几的简写
%A 星期几的全称
%b 月分的简写
%B 月份的全称
%c 标准的日期的时间串
%C 年份的后两位数字
%d 十进制表示的每月的第几天
%D 月/天/年
%e 在两字符域中,十进制表示的每月的第几天
%F 年-月-日
%g 年份的后两位数字,使用基于周的年
%G 年分,使用基于周的年
%h 简写的月份名
%H 24小时制的小时
%I 12小时制的小时
%j 十进制表示的每年的第几天
%m 十进制表示的月份
%M 十时制表示的分钟数
%n 新行符
%p 本地的AM或PM的等价显示
%r 12小时的时间
%R 显示小时和分钟:hh:mm
%S 十进制的秒数
%t 水平制表符
%T 显示时分秒:hh:mm:ss
%u 每周的第几天,星期一为第一天 (值从0到6,星期一为0)
%U 第年的第几周,把星期日做为第一天(值从0到53)
%V 每年的第几周,使用基于周的年
%w 十进制表示的星期几(值从0到6,星期天为0)
%W 每年的第几周,把星期一做为第一天(值从0到53)
%x 标准的日期串
%X 标准的时间串
%y 不带世纪的十进制年份(值从0到99)
%Y 带世纪部分的十制年份
%z,%Z 时区名称,如果不能得到时区名称则返回空字符。
%% 百分号
时区设置
import pytz
pytz.common_timezones # 查看所有时区
pytz.country_timezones('cn') # [u'Asia/Shanghai', u'Asia/Urumqi']
tz = pytz.timezone('Asia/Shanghai') # 设置时区为Asia/Shanghai
tz = pytz.timezone('America/Tortola') # 美国中东时间America/Tortola
datetime.datetime.now(tz).strftime("%Y-%m-%d %H:%M:%S")
time
三种表示方式:
(1) 时间戳 1970年1月1日之后的秒 time.time()
(2) 元组包含了:年、日、星期等… time.struct_time
(3) 格式化的字符串 2018-01-11 11:11
import time
# 时间戳
time.time()
# 元组形式
time.gmtime()
time.localtime()
# 字符串
time.strftime('%Y-%m-%d %H:%M:%S')
time.asctime()
time.asctime(time.localtime())
time.ctime(time.time())
# 三种方式之间相互转换
# 将字符串形式转换为元祖形式
time.strptime('2018-01-01','%Y-%m-%d')
time.strptime(time.strftime('%Y-%m-%d'),'%Y-%m-%d')
#将元组形式(结构化)转换成字符形式
time.strftime('%Y-%m-%d',time.localtime())
#字符串转换成时间戳 (字符串类型不能直接转换成时间戳)
datetime
import datetime
datetime.date:表示日期的类。常用的属性有year, month, day
datetime.time:表示时间的类。常用的属性有hour, minute, second, microsecond
datetime.datetime:表示日期时间
datetime.timedelta:表示时间间隔,即两个时间点之间的长度
datetime.datetime.now() #当前时间
# 计算两个日期相差天数的计算
d1 = datetime.datetime.strptime("2018-02-13","%Y-%m-%d")
d2 = datetime.datetime.strptime("2018-01-24","%Y-%m-%d")
(d1-d2).days
# 计算两个时间相差的秒数
starttime = datetime.datetime.now()
endtime = datetime.datetime.now()
(endtime - starttime).seconds
#计算当前时间向后10小时的时间
(datetime.datetime.now() +datetime.timedelta(hours=10)).ctime()
# 12制的时间,am代表00:00:00--11:59:59时间段,pm代表12:00:00-23:59:59时间段
# 如AM9:00就是上午9点,PM9:00就是21:00:00
datetime.datetime.strptime("1/13/2018 11:37:54 PM", '%m/%d/%Y %H:%M:%S %p').strftime("%Y-%m-%d %H:%M:%S")
datetime
# 安装: pip install python-dateutil from dateutil.relativedelta import relativedelta datetime.datetime.now() - relativedelta(days=1) #当前时间减1天 datetime.datetime.now() - relativedelta(weeks=1) # 一周 datetime.datetime.now() - relativedelta(months=1) # 月
pandas.date_range
# 安装 pip install pandas
import pandas as pd
# 获取时间列表
pd.date_range(datetime.datetime.now().strftime("%Y-%m-%d %H"),periods=25, freq="H")
DatetimeIndex(['2018-01-24 10:00:00', '2018-01-24 11:00:00',
'2018-01-24 12:00:00', '2018-01-24 13:00:00',
'2018-01-24 14:00:00', '2018-01-24 15:00:00',
'2018-01-24 16:00:00', '2018-01-24 17:00:00',
'2018-01-24 18:00:00', '2018-01-24 19:00:00',
'2018-01-24 20:00:00', '2018-01-24 21:00:00',
'2018-01-24 22:00:00', '2018-01-24 23:00:00',
'2018-01-25 00:00:00', '2018-01-25 01:00:00',
'2018-01-25 02:00:00', '2018-01-25 03:00:00',
'2018-01-25 04:00:00', '2018-01-25 05:00:00',
'2018-01-25 06:00:00', '2018-01-25 07:00:00',
'2018-01-25 08:00:00', '2018-01-25 09:00:00',
'2018-01-25 10:00:00'],
dtype='datetime64[ns]', freq='H')

浙公网安备 33010602011771号