目录
时间转字符串
#! /usr/bin/env python
# -*- coding: utf-8 -*-
# .__author__. = "Lily Yu"
# .DATE.: 2017/7/9
import time
# 把时间转成字符串
today = time.strftime('%Y%m%d', time.localtime(time.time())) # 输出是“20170709”
dateTime = time.strftime('%Y%m%d_%H%M%S', time.localtime(time.time())) # 输出是“20170709_184921”
字符串转时间
使用time模块下的strptime函数
am_str = '6/18/2017 9:04:42'
stTemp = time.strptime(am_str, "%m/%d/%Y %H:%M:%S")
print(stTemp)
# 输出结果是 time.struct_time(tm_year=2017, tm_mon=6, tm_mday=18, tm_hour=9, tm_min=4, tm_sec=42, tm_wday=6, tm_yday=169, tm_isdst=-1) 格式说明:
%Y Year with century as a decimal number. # 年份 %m Month as a decimal number [01,12]. # 月份 %d Day of the month as a decimal number [01,31]. # 每月的几号 %H Hour (24-hour clock) as a decimal number [00,23]. # 24小时制 %M Minute as a decimal number [00,59]. # 分钟数 %S Second as a decimal number [00,61]. # 秒数 %z Time zone offset from UTC. # 时区 %a Locale's abbreviated weekday name. # 星期几的缩写 %A Locale's full weekday name. # 星期几的全称 %b Locale's abbreviated month name. # 月份的缩写 %B Locale's full month name. # 月份的全称 %c Locale's appropriate date and time representation. # %I Hour (12-hour clock) as a decimal number [01,12]. # 12小时制 %p Locale's equivalent of either AM or PM. # 上午 或 下午
更多信息可以参考time.py模块
再来一个例子:
stTemp = time.strptime("30 Nov 00", "%d %b %y")
print(stTemp)
输出结果是
time.struct_time(tm_year=2000, tm_mon=11, tm_mday=30, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=335, tm_isdst=-1)
没有的部分默认为零。
time.struct_time说明
tm_*具体代表什么意思参考如下说明:
int tm_sec; /* 秒 – 取值区间为[0,59] */
int tm_min; /* 分 - 取值区间为[0,59] */
int tm_hour; /* 时 - 取值区间为[0,23] */
int tm_mday; /* 一个月中的日期 - 取值区间为[1,31] */
int tm_mon; /* 月份(从一月开始,0代表一月) - 取值区间为[0,11] */
int tm_year; /* 年份,其值等于实际年份减去1900 */
int tm_wday; /* 星期 – 取值区间为[0,6],其中0代表星期一,6代表星期天,以此类推 */
int tm_yday; /* 从每年的1月1日开始的天数 – 取值区间为[0,365],其中0代表1月1日,1代表1月2日,以此类推 */
int tm_isdst; /* 夏令时标识符,实行夏令时的时候,tm_isdst为正。不实行夏令时的时候,tm_isdst为0;不了解情况时,tm_isdst()为负。
使用datetime模块下的datetime类
import datetime # Python3解释器自带datetime模块
strTime = 'Sun, 18 Jun 2017 06:12:08 GMT'
GMT_FORMAT = '%a, %d %b %Y %H:%M:%S GMT'
clsTime = datetime.datetime.strptime(strTime, GMT_FORMAT)
print(clsTime) # 输出结果是“2017-06-18 06:12:08”
综合范例
这段代码是字符串先转为时间格式,时间格式再转为字符串
pm_str = '6/18/2017 9:52:37 PM'
stTemp = time.strptime(pm_str, "%m/%d/%Y %I:%M:%S %p")
print(stTemp)
str_time = time.strftime("%m-%d-%Y_%H%M%S", stTemp)
print(str_time)
stTemp的输出结果是
time.struct_time(tm_year=2017, tm_mon=6, tm_mday=18, tm_hour=21, tm_min=52, tm_sec=37, tm_wday=6, tm_yday=169, tm_isdst=-1)
str_time的输出结果是 06-18-2017_215237