time datetime
time
和datetime
是python处理时间的两个库,作用差不多
据说datetime
的功能比time
完善,为了保持一致,尽量都用datetime
所以time
在我看来唯一的用处就是获取时间戳了
注意datetime
里面还有个模块叫datetime
,很恶心人,导入的时候小心点
import datetime
当前时间(精确到秒)
t = datetime.datetime.now() # 2017-12-12 19:10:19.580580
当前日期(精确到天)
t = datetime.date.today() # 2017-12-12
当前时间戳
datetime
好像不能直接得到时间戳,所以先拿到当前时间,再转成时间戳
t = datetime.datetime.now()
stamp = t.timestamp() # 1513077019.58058
或者通过time
直接获取时间戳
import timet = time.time() # 1513077019.580655
应用
因为工作上的需要,要拿到一个日期(天)的第二天早上六点的时间,我是这么做的
先拿到零点的时间
t = datetime.date.today() # 2017-12-12
t = datetime.datetime.strftime(t, "%Y-%M-%d %H:%M:%S") # 2017-12-12 00:00:00
上面拿到的是字符串,需要转成datetime
类型才能进行时间上的加减和比较
t = datetime.datetime.strptime(t, "%Y-%m-%d %H:%M:%S") # 2017-12-12 00:00:00
加六个小时,也可以加days
、minutes
、weeks
等等
t = t + datetime.timedelta(hours=6) # 2017-12-12 06:00:00
这样就拿到我想要的东西了,干什么用呢
第一个日期是用户已经登录过的日期,算出这个日期第二天早上六点的时间
只要用户在那个时间之前登录,都算已经登录过了,不做处理
在那个时间之后的第一次登录,就算新的一天的登录,做处理,并重置登录日期为今天
注意datetime
类型的时间,是可以直接做比较的
t1 = 2017-12-12 19:00:00
t2 = 2017-12-12 20:00:00
t1 < t2 # True
在重置登录日期的时候,又遇到一个问题
如果在零点到六点之间重置,因为过了零点,日期算第二天了
但过了六点之后应该还要重置一次,判断条件已经达不到了
所以再做一个判断,是在零点和六点之间重置,日期就往回退一天
t = datetime.datetime.now()
h = t.hour
if h > 6:t = datetime.date.today()
else:t = datetime.date.today() - datetime.timedelta(days=1)
参考
网上的资料一片混乱,这篇是我看过写得最清楚的
https://zhuanlan.zhihu.com/p/23679915
这篇讲了time
和datetime
的区别与联系
http://gracece.com/2014/10/the-distinction-between-date-and-datetime-in-python/
再收藏一篇
http://www.wklken.me/posts/2015/03/03/python-base-datetime.html#1-huo-qu-dang-qian-datetime
转载于:https://www.cnblogs.com/xb21/p/8385992.html
time datetime相关推荐
- Python 标准库之 datetime
1. datetime 简介 datetime 是基于 time 模块进行了封装,提供了更高级的功能.该模块主要有以下几个类: date: 表示日期的类.常用的属性有 year, month, day ...
- 你需要掌握的有关.NET DateTime类型的知识点和坑位 都在这里
引言 DateTime数据类型是一个复杂的问题,复杂到足以让你在编写[将日期从Web服务器返回到浏览器]简单代码时感到困惑. ASP.NET MVC 5和 Web API 2/ASP.NETCo ...
- time 和 datetime 模块
在Python中,通常有这几种方式来表示时间: 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量.我们运行"type(time. ...
- SQL Server 中print Datetime类型问题
declare @date datetime set @date='2010-1-1' print dateadd(dd,1,@date) 输出:01 2 2010 12:00AM 输出的是201 ...
- java datetime now_相当于C#的DateTime.Now在Java中?
问题 如何在Java中获取当前日期? 在C#中它是DateTime.Now. #1 热门回答(405 赞) 只需构建一个没有任何参数的new20666728对象;这会将当前日期和时间分配给新对象. ...
- C#中DateTime.Now.Ticks的用法和说明
在C#中DateTime.Now.Ticks的常用于标示: 自 0001 年 1 月 1 日午夜 12:00:00以来,到当前时间为止:以0.1纳秒(1纳秒=0.00000 0001秒)为单位的时间间 ...
- 转换前台javascript传递过来的时间字符串到.net的DateTime
javascript: var date=new Date().toString(); 得到的结果类似于:Wed Oct 27 2010 08:53:04 GMT+0800 如何在C#中把这个字符串 ...
- 报错:该字符串未被识别为有效的DateTime
报错:该字符串未被识别为有效的DateTime □ 背景 前端的搜索条件中包含关于时间的字符串,由jquery ui的datepicker产生时间字符串. 服务端对时间做了一次转换:DateTime. ...
- java date truncate_在Java中将dateTime转换为dd / mm / yy格式的日期
小编典典 正如我最初所说,Date对象没有固有的格式.java.util.Date持有毫秒时间值,代表日期和时间.通过选择DateFormat,可以从字符串解析日期或将日期格式化为字符串. 可以按照规 ...
最新文章
- Python生成html邮件
- 你以为A10 Networks只做应用交付?
- JZOJ 5691. 【GDOI2018Day2模拟4.25】求和
- 设计模式适配器模式_21世纪的设计模式:适配器模式
- Linux查看端口使用情况
- LaTex 加粗(加黑)的方式
- js实现基本图片切换功能
- Mybatis-plus代码生成器
- 403 Forbidden nginx/1.6.2
- 复旦计算机可以跨专业吗,I直达录取现场I2020,还能跨考计算机吗?
- 2022-2028年中国棉花采摘机行业市场调查研究及投资策略研究报告
- Java趣味编程(一)
- Rails中的includes和joins的区别与用法(翻译,部分)
- WiCloud 商业Wi-Fi管理平台
- 思科路由器无法访问互联网怎么操作?
- 计算机图形学 Unity ShaderLab 颜色混合运算相关计算方法
- Android Hawk数据库的源码解析,Github开源项目,基于SharedPreferences的的存储框架
- QQ音乐做直播:与秀场无关,对数字音乐产业有何影响?
- npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree
- 实数系的基本定理_继续学习贝叶斯定理