python学习01-时间处理time和datatime模块

转自:

https://www.jb51.net/article/67828.htm

https://www.cnblogs.com/wenBlog/p/6023742.html

Python里如何获取当前的日期和时间呢?在Python语言里,我们可以通过调用什么模块或者类函数来得到当前的时间或日期呢?

当然你可以使用时间模块(time module),该模块提供了各种和时间相关的函数。但是这个模块里的一些函数在某些平台里不可用。那么怎么办呢?我们
可以使用一个更高级的面向对象的接口函数:datetime。它提供了操作日期和时间的多种简单或复杂的方法。

python里使用time模块来获取当前的时间

1
2
3
time.strftime(format)
time.strftime("%H:%M:%S"##24小时格式
time.strftime("%I:%M:%S")## 12小时格式

示例
一个获取当天日期和时间的简单python程序

1
2
3
4
5
6
7
#!/usr/bin/python

import time
print (time.strftime("%H:%M:%S"))

## 12 hour format ##
print (time.strftime("%I:%M:%S"))

示例输出:

1
2
18:11:30
6:11:30

打印出当前的日期的python程序

1
2
3
4
5
#!/usr/bin/python

import time
## dd/mm/yyyy格式
print (time.strftime("%d/%m/%Y"))

示例输出:
11/10/2013

格式参数:

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
%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 时区名称,如果不能得到时区名称则返回空字符。
%% 百分号

使用datetime模块来获取当前的日期和时间
参数如下:

1
2
3
4
5
6
cur =datetime.datetime.now()
cur.hour
cur.minute
cur.year
cur.day
cur.month

例子:

1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/python
import datetime
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
当前的日期和时间  2013-10-11 19:38:19.4545
ISO格式的日期和时间 2013-10-11T19:38:19.4545
当前的年份 2013
当前的月份 10
当前的日期  11
dd/mm/yyyy 格式是  11/10/2013
当前小时是 0
当前分钟是 38
当前秒是  19

Python中datetime常用时间处理方法

Python提供了多个内置模块用于操作日期时间,像calendar,time,datetime。今天我们主要来探讨下datetime的使用方法,有需要的小伙伴可以参考下。

常用时间转换及处理函数:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
import datetime
# 获取当前时间
d1 = datetime.datetime.now()
print d1
# 当前时间加上半小时
d2 = d1 + datetime.timedelta(hours = 0.5 )
print d2
# 格式化字符串输出
d3 = d2.strftime( '%Y-%m-%d %H:%M:%S' )
print d3
# 将字符串转化为时间类型
d4 = datetime.datetime.strptime(date, '%Y-%m-%d %H:%M:%S.%f' )
print d4

获取本周和本月第一天的日期:

?
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
# -*- coding:utf-8 -*-
import datetime
def first_day_of_month():
   '''
   获取本月第一天
   :return:
   '''
   # now_date = datetime.datetime.now()
   # return (now_date + datetime.timedelta(days=-now_date.day + 1)).replace(hour=0, minute=0, second=0,
   # microsecond=0)
   return datetime.date.today() - datetime.timedelta(days = datetime.datetime.now().day - 1 )
def first_day_of_week():
   '''
   获取本周第一天
   :return:
   '''
   return datetime.date.today() - datetime.timedelta(days = datetime.date.today().weekday())
if __name__ = = "__main__" :
   this_week = first_day_of_week()
   last_week = this_week - datetime.timedelta(days = 7 )
   this_month = first_day_of_month()
   last_month = this_month - datetime.timedelta(days = (this_month - datetime.timedelta(days = 1 )).day)
   print this_week
   print last_week
   print this_month
   print last_month
?
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#! /usr/bin/python
# coding=utf-8
 
import datetime
 
"""
datetime的功能强大
能支持0001年到9999年
"""
 
"""
当前时间
返回的是一个datetime类型
now方法有个参数tz,设置时区类型。如果没有和方法today的效果一样
"""
now = datetime.datetime.now()
#UTC时间
datetime.datetime.utcnow()
attrs = [
( "year" , "年" ),( 'month' , "月" ),( "day" , "日" ),( 'hour' , "小时" ),( 'minute' , "分" ),( 'second' , "秒" ),( 'microsecond' , "毫秒" ),(
'min' , "最小" ),( 'max' , "最大" ),
]
for k,v in attrs:
   "now.%s = %s #%s" % (k, getattr (now, k),v)
 
 
"""
返回一个time结构
"""
now.timetuple()
 
"""
返回一个date类型
 
"""
now.date()
 
"""
返回一个time类型
 
"""
now.time()
 
"""
当前星期几。星期一是0,星期于是6
注意这里是方法,不是属性哦。
"""
now.weekday()
 
"""
当前星期几。星期一是1,星期于是7
注意这里是方法,不是属性哦。
"""
now.isoweekday()
 
"""
修改当前时间。比如修改成当月1号
"""
now.replace(day = 1 )
 
past = datetime.datetime( 2010 , 11 , 12 , 13 , 14 , 15 , 16 )
 
"""
进行比较运算
返回的是timedelta类型
 
"""
now - past
"""
转成字符串
详细规则见Time篇
 
"""
strdatetime = now.strftime( "%Y-%m-%d %H:%M:%S" )
"""
字符串生成datetime对象
"""
datetime.datetime.strptime(strdatetime, "%Y-%m-%d %H:%M:%S" )


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值