Python 时间戳及字符串转换

目录

时间转字符串

字符串转时间

使用time模块下的strptime函数

time.struct_time说明

使用datetime模块下的datetime类

综合范例


时间转字符串

#! /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
发布了85 篇原创文章 · 获赞 82 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/yl_best/article/details/98480847