
正文
关于python时间格式函数的信息
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
新手求教:python 时间格式转换
时间格式转换分为两种,时间转换为字符串和字符串转换为时间,具体代码例子如下:
1 import datetime
2 import time
3 # 日期转换为字符串,使用strftime()函数
4 # time.strftime(format[, t])
5
6 print datetime.datetime.now()
7 print datetime.datetime.now().strftime("%Y-%m-%d
%H:%M:%S")
8 print datetime.datetime.now().strftime("%b
%d %Y %H:%M:%S")
9 print datetime.datetime.now().strftime("%c
%d %Y %H:%M:%S")
10 # 字符串转换为日期,使用strptime()函数
11 t = (2009, 2, 17, 8, 3, 38, 1, 48, 0)
12 t = time.mktime(t)
13 print time.strftime("%b %d %Y %H:%M:%S",time.gmtime(t))
14 print time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime(t))
注:格式字符说明:
python中时间日期格式化符号:
%y
两位数的年份表示(00-99)
%Y
四位数的年份表示(000-9999)
%m
月份(01-12)
%d
月内中的一天(0-31)
%H
24小时制小时数(0-23)
%I
12小时制小时数(01-12)
%M
分钟数(00=59)
%S
秒(00-59)
%a
本地简化星期名称
%A
本地完整星期名称
%b
本地简化的月份名称
%B
本地完整的月份名称
%c
本地相应的日期表示和时间表示
%j
年内的一天(001-366)
%p
本地A.M.或P.M.的等价符
%U
一年中的星期数(00-53)星期天为星期的开始
%w
星期(0-6),星期天为星期的开始
%W
一年中的星期数(00-53)星期一为星期的开始
%x
本地相应的日期表示
%X
本地相应的时间表示
%Z
当前时区的名称
%%
%号本身
相关问答
Q1: python函数深入浅出 16.time.sleep()函数详解
time.sleep() 函数命名来源于英文单词time(时间)和sleep(睡眠)。
time 是python带的非内置库,使用时需要import,主要用于处理和时间相关的操作。
time.sleep用于给定时间内挂起(等待)当前线程的执行。
time.sleep() 函数的例子:
可以注释掉time.sleep(2)再运行一次对比一下
可以看到虽然都是打印出一样的结果,但time.sleep()加入了等待时间
这里还要解释一下python中线程与进程的区别。
举个例子,厨房做菜看成是一个进程,那么这个进程下面就可能有多个人或一个人(cpu基本执行单元,即线程)来执行,多个人可以分别洗菜,刷碗,摆盘等等同时作业,他们又是共享这个厨房的资源的。每个人存在一定的资源竞争关系,比如炉火只有1个。
这里time.sleep是针对线程执行的,也就是其中一个人去sleep睡觉了,不影响其他人的继续工作。
参数
该函数没有返回值。
结果类似如下:
可以看到秒数相差了5
无
time.sleep()常用于推迟执行的场景
在python中,与时间相关的模块有:time,datetime以及calendar
对基础运行环境有疑问的,推荐参考: python函数深入浅出 0.基础篇
Q2: python数字怎么转变时间?
5位数日期戳读取 .mat 文件处理里面数据时,发现里面的日期数据全部都是 “5位数” 数字,很不解;后来查到可以在excel中通过设置单元格调回标准日期格式,如下:选中日期戳,右键选择 “格式化单元格(Format Cells)”选择需要的日期格式,点击ok即可通过代码转成标准日期例如这个DataFrame中的日期,全部都是“日期戳”格式的,但我需要的是人能看懂的“标准日期”;确认起始日期首先需拿一个“日期戳”对应的时间(标准日期),减去这个日期戳,得出起始时间。获取起始时间:2018-05-02 对应的日期戳为:43222,接下来通过pandas 的Timedelta()和 to_datetime() 获取起始时间。可以看到起始日期为“1899-12-30”这样一来后续日期戳转标准日期,只需要在 “1899-12-30” 的基础上加 “日期戳”即可。批量转换首先定义一个函数用来进行转换:#定义转化日期戳的函数,stamp为日期戳def date(stamp):delta = pd.Timedelta(str(stamp)+'D')real_time = pd.to_datetime('1899-12-30') + deltareturn real_time然后针对DataFrame需要转换的列进行转换即可:
Q3: python,格式化时间实例,求
对于像'Wed, 11 Apr 2012 09:37:05 +0800'的时间格式化可如下解:
date='Wed, 11 Apr 2012 09:37:05 +0800'
dd=datetime.datetime.strptime(date,'%a, %d %b %Y %H:%M:%S %z')
dd.strftime('%Y-%m-%d %H:%M:%S')
Python格式化日期时间的函数为datetime.datetime.strftime();由字符串转为日期型的函数为:datetime.datetime.strptime(),两个函数都涉及日期时间的格式化字符串,列举如下:
%a Abbreviated weekday name
%A Full weekday name
%b Abbreviated month name
%B Full month name
%c Date and time representation appropriate for locale
%d Day of month as decimal number (01 - 31)
%H Hour in 24-hour format (00 - 23)
%I Hour in 12-hour format (01 - 12)
%j Day of year as decimal number (001 - 366)
%m Month as decimal number (01 - 12)
%M Minute as decimal number (00 - 59)
%p Current locale's A.M./P.M. indicator for 12-hour clock
%S Second as decimal number (00 - 59)
%U Week of year as decimal number, with Sunday as first day of week (00 - 51)
%w Weekday as decimal number (0 - 6; Sunday is 0)
%W Week of year as decimal number, with Monday as first day of week (00 - 51)
%x Date representation for current locale
%X Time representation for current locale
%y Year without century, as decimal number (00 - 99)
%Y Year with century, as decimal number
%z, %Z Time-zone name or abbreviation; no characters if time zone is unknown
%% Percent sign
Q4: Python获取当前时间前、后一个月的函数
这需求折腾了我半天..
import time
import datetime as datetime
def late_time(time2):
# 先获得时间数组格式的日期
#time2是外部传入的任意日期
now_time = datetime.datetime.strptime(time2, '%Y-%m-%d')
#如需求是当前时间则去掉函数参数改写 为datetime.datetime.now()
threeDayAgo = (now_time - datetime.timedelta(days =30))
# 转换为时间戳
timeStamp =int(time.mktime(threeDayAgo.timetuple()))
# 转换为其他字符串格式
otherStyleTime = threeDayAgo.strftime("%Y-%m-%d")
return otherStyleTime
a = late_time("2019-3-30")
print(a)# 打印2018-02-28








