Python格式化日期时间

Python中日期时间格式化是非常常见的操作,Python 中能用很多方式处理日期和时间,转换日期时间格式是一个常见的功能。Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间。时间间隔是以秒为单位的浮点小数。每个时间戳都以自从格林威治时间1970年01月01日00时00分00秒起经过的时间来表示。

基本方法

获取当前日期:time.time()

获取元组形式的时间戳:time.local(time.time())

格式化日期的函数(基于元组的形式进行格式化):

(1)time.asctime(time.local(time.time()))
(2)time.strftime(format[,t])

将格式字符串转换为时间戳:time.strptime(str, fmt=’%a %b %d %H:%M:%S %Y’)

延迟执行:time.sleep([secs]),单位为秒

式化符号

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 - 当前时区的名称
%% - %号本身

案例测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# -*- coding:utf-8 -*-
import time
import datetime

#当前时间
print time.time()
#时间戳形式
print time.localtime(time.time())
#简单可读形式
print time.asctime(time.localtime(time.time()))
# 格式化成2016-03-20 11:55:30形式
print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
# 格式化成Sat Mar 28 22:22:22 2016形式
print time.strftime("%a %b %d %H:%M:%S %Y", time.localtime())

# 将格式字符串转换为时间戳
t = "Sat Mar 28 22:22:22 2016"
print int(time.mktime(time.strptime(t, "%a %b %d %H:%M:%S %Y")))
t = "2016-03-28 22:22:22"
print int(time.mktime(time.strptime(t, "%Y-%m-%d %H:%M:%S")))

# 将时间戳转换为格式字符串
timestamp = 1459174942
print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(timestamp))

# 格式切换
t = "2016-03-28 22:22:22"
strptime = time.strptime(t, "%Y-%m-%d %H:%M:%S")
print time.strftime("%Y/%m/%d %H:%M:%S", strptime)

# 将当前时间转换为格式字符串
print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))

# 获得3天前的时间
three_days_ago = (datetime.datetime.now() - datetime.timedelta(days=3))
print int(time.mktime(three_days_ago.timetuple())) # 时间戳
print three_days_ago.strftime("%Y-%m-%d %H:%M:%S") # 时间字符串

# 使用datetime模块来获取当前的日期和时间
i = datetime.datetime.now()
print ("当前的日期和时间: %s" % i)
print ("ISO格式的日期和时间: %s" % i.isoformat() )
print ("当前的年份: %s" % i.year)
print ("当前的月份: %s" % i.month)
print ("当前的日期: %s" % i.day)
print ("dd/mm/yyyy 格式: %s/%s/%s" % (i.day, i.month, i.year) )
print ("当前小时: %s" % i.hour)
print ("当前分钟: %s" % i.minute)
print ("当前秒: %s" % i.second)

运行结果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
1524831532.01
time.struct_time(tm_year=2018, tm_mon=4, tm_mday=27, tm_hour=20, tm_min=18, tm_sec=52, tm_wday=4, tm_yday=117, tm_isdst=0)
Fri Apr 27 20:18:52 2018
2018-04-27 20:18:52
Fri Apr 27 20:18:52 2018
1459174942
1459174942
2016-03-28 22:22:22
2016/03/28 22:22:22
2018-04-27 20:18:52
1524572332
2018-04-24 20:18:52
当前的日期和时间: 2018-04-27 20:18:52.017000
ISO格式的日期和时间: 2018-04-27T20:18:52.017000
当前的年份: 2018
当前的月份: 4
当前的日期: 27
dd/mm/yyyy 格式: 27/4/2018
当前小时: 20
当前分钟: 18
当前秒: 52

Powered by AppBlog.CN     浙ICP备14037229号

Copyright © 2012 - 2020 APP开发技术博客 All Rights Reserved.

访客数 : | 访问量 :