python time datetime 使用
来源:互联网 发布:厦大网络教学平台登录 编辑:程序博客网 时间:2024/06/03 10:47
项目中用到一个需求
开始的我傻傻分不清楚, 闲言少絮,开始正题
1 业务需求,需要随机获得 十年间隔内任意一天 人的生日
在python sqlalchemy 中birthday是 date格式(2017-12-14)
在python中怎么实现呢?
现在还没有优化的的代码是这样的:
@staticmethod def get_birthday(): date1 = (2007, 1, 1, 0, 0, 0, -1, -1, -1) time1 = mktime(date1) date2 = (2017, 1, 1, 0, 0, 0, -1, -1, -1) time2 = mktime(date2) random_time = random.uniform(time1, time2) # uniform返回随机实数 time1 <= time < time2 random_time = date.fromtimestamp(random_time) return random_timeif __name__ == '__main__': birthday = OhhoRandom.get_birthday() print(birthday) # 2008-10-18
we
- nihao
- rr
- rrr
双方的
sdfsdfsdfsdf
sdfsdf
sdf
dfsdfsdf sdfsd
- 有序列表
dd
datetime
datetime 是Python 处理日期和时间的标准库
要将datetime 拆开看 date 和 time
2015-04-19 12:20:00 这样就是日期时间类型 2015-04-19是日期(年月日) 12:20:00 时间(时分秒)
这里首先要清楚一个概念,模块,类
>>> from datetime import datetime>>> datetime.now()datetime.datetime(2017, 12, 15, 16, 26, 6, 981321)>>> type(datetime.now())<type 'datetime.datetime'>
注意到datetime是模块,datetime模块还包含一个datetime类,通过from datetime import datetime导入的才是datetime这个类。
如果仅导入import datetime,则必须引用全名datetime.datetime。
datetime.now()返回当前日期和时间,其类型是datetime
datetime 类也有自己的时间戳, time模块中也有
现在看下datetime 模块中有哪些类,类中又有哪些方法和属性
最好的学习方法是学习官网
https://docs.python.org/3/library/datetime.html#available-types
datetime 中包含的类:
- datetime.datetime
- datetiem.date
- datetime.time
- datetime.timezone
- datetiem.tzinfo
- datetime.delta
datetime.datetime 类
datetime 类 包含了来自于 datetime.date datetime.time 类的所有信息
# datetime 中的方法>>> datetime.now().year # 获取当年的年份 year是属性2017>>> datetime.now() # 当前本地的时间相当于localtime时间datetime.datetime(2017, 12, 15, 16, 58, 13, 767337)>>> datetime.utcnow() # 获取utc的时间和本地实际不一样datetime.datetime(2017, 12, 15, 8, 58, 32, 79397)>>> datetime.today()datetime.datetime(2017, 12, 15, 17, 4, 44, 815862)
datetime 类型的属性 有year,month, day, hour, minute,second, microsecond, tzinfo,fold
microsecond 微妙
tzinfo 时区信息对象
fold
毫秒怎么表示呢?
datetime.timestamp 时间戳
import timet1 = time.time()time.sleep(3)t2 = time.time()print(t2 - t1) # 3.0001702308654785from datetime import datetimet3 = datetime.now().timestamp()time.sleep(3)t4 = datetime.now().timestamp()print(t4 - t3) # 3.0004689693450928>>> datetime.now().timestamp()1513938240.282642>>> time.time()1513938521.50536
说明:
time 是以float 为基础的,小数点后面是 毫秒数,整数部分是秒 Java 中不一样Java中是毫秒
关于时间戳
时间戳和时区没有关系,使用本地时间
当前时间的时间戳和utc 下的时间的时间戳
print(datetime.now().timestamp())print(datetime.now())print(datetime.utcnow().timestamp())print(datetime.utcnow())#1513940607.905186#2017-12-22 19:03:27.905186#1513911807.905186#2017-12-22 11:03:27.905186
python 中日期转字符串和 字符串转日期
日期转字符串
now_datetime = datetime.now()now_string = now_datetime.strftime("%Y-%m-%d %H:%M:%S")print(now_string)#2017-12-22 19:16:25
字符串 转日期
string_date = datetime.strptime("2017-12-22 19:16:25", "%Y-%m-%d %H:%M:%S")print(string_date) #2017-12-22 19:16:25string_date = datetime.strptime("2017-12-22", "%Y-%m-%d")print(string_date)#2017-12-22 00:00:00string_date = datetime.strptime("19:16:25", "%H:%M:%S")print(string_date) # 1900-01-01 19:16:25
离现在之前的时间
date
- python datetime time使用
- python time datetime 使用
- python使用time、datetime返回工作日列表
- python time、datetime模块学习使用
- python---time,datetime模块
- python datetime time
- python datetime、time、date
- Python datetime / time 转换
- python datetime time
- python time,datetime 操作
- python---time和datetime
- Python-time与datetime
- Python---time与datetime
- [python]time,datetime模块
- [代码笔记] python 之JSON 使用和 Time,datetime
- Python使用 time和datetime模块随意操作 时间
- python time datetime模块详解
- python time,datetime,string转换
- 【图论】最大流之EK算法与Dinic算法及最小费用最大流(转)
- 记录2
- 怎么把C++的运行结果导入TXT中
- 小技巧——如何为foxmail中的文字编辑超链接
- Python画图
- python time datetime 使用
- otter系列—otter 基本介绍
- 740. Delete and Earn
- bzoj1041: [HAOI2008]圆上的整点
- Decorator函数
- 【Java学习笔记】父类引用指向子类对象之属性
- NDK开发系列二
- Hadoop读书笔记(一)——Hadoop分布式文件系统
- CS231n A2: Global name 'col2im_6d_cython' is not defined解决(Mac)