timedatetime是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

加六个小时,也可以加daysminutesweeks等等

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

这篇讲了timedatetime的区别与联系
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相关推荐

  1. Python 标准库之 datetime

    1. datetime 简介 datetime 是基于 time 模块进行了封装,提供了更高级的功能.该模块主要有以下几个类: date: 表示日期的类.常用的属性有 year, month, day ...

  2. 你需要掌握的有关.NET DateTime类型的知识点和坑位 都在这里

    引言    DateTime数据类型是一个复杂的问题,复杂到足以让你在编写[将日期从Web服务器返回到浏览器]简单代码时感到困惑. ASP.NET MVC 5和 Web API 2/ASP.NETCo ...

  3. time 和 datetime 模块

    在Python中,通常有这几种方式来表示时间: 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量.我们运行"type(time. ...

  4. SQL Server 中print Datetime类型问题

    declare @date datetime  set @date='2010-1-1' print dateadd(dd,1,@date) 输出:01  2 2010 12:00AM 输出的是201 ...

  5. java datetime now_相当于C#的DateTime.Now在Java中?

    问题 如何在Java中获取当前日期? 在C#中它是DateTime.Now. #1 热门回答(405 赞) 只需构建一个没有任何参数的new206​​66728对象;这会将当前日期和时间分配给新对象. ...

  6. C#中DateTime.Now.Ticks的用法和说明

    在C#中DateTime.Now.Ticks的常用于标示: 自 0001 年 1 月 1 日午夜 12:00:00以来,到当前时间为止:以0.1纳秒(1纳秒=0.00000 0001秒)为单位的时间间 ...

  7. 转换前台javascript传递过来的时间字符串到.net的DateTime

    javascript:  var date=new Date().toString(); 得到的结果类似于:Wed Oct 27 2010 08:53:04 GMT+0800 如何在C#中把这个字符串 ...

  8. 报错:该字符串未被识别为有效的DateTime

    报错:该字符串未被识别为有效的DateTime □ 背景 前端的搜索条件中包含关于时间的字符串,由jquery ui的datepicker产生时间字符串. 服务端对时间做了一次转换:DateTime. ...

  9. java date truncate_在Java中将dateTime转换为dd / mm / yy格式的日期

    小编典典 正如我最初所说,Date对象没有固有的格式.java.util.Date持有毫秒时间值,代表日期和时间.通过选择DateFormat,可以从字符串解析日期或将日期格式化为字符串. 可以按照规 ...

最新文章

  1. Python生成html邮件
  2. 你以为A10 Networks只做应用交付?
  3. JZOJ 5691. 【GDOI2018Day2模拟4.25】求和
  4. 设计模式适配器模式_21世纪的设计模式:适配器模式
  5. Linux查看端口使用情况
  6. LaTex 加粗(加黑)的方式
  7. js实现基本图片切换功能
  8. Mybatis-plus代码生成器
  9. 403 Forbidden nginx/1.6.2
  10. 复旦计算机可以跨专业吗,I直达录取现场I2020,还能跨考计算机吗?
  11. 2022-2028年中国棉花采摘机行业市场调查研究及投资策略研究报告
  12. Java趣味编程(一)
  13. Rails中的includes和joins的区别与用法(翻译,部分)
  14. WiCloud 商业Wi-Fi管理平台
  15. 思科路由器无法访问互联网怎么操作?
  16. 计算机图形学 Unity ShaderLab 颜色混合运算相关计算方法
  17. Android Hawk数据库的源码解析,Github开源项目,基于SharedPreferences的的存储框架
  18. QQ音乐做直播:与秀场无关,对数字音乐产业有何影响?
  19. npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree
  20. 实数系的基本定理_继续学习贝叶斯定理

热门文章

  1. 点击改变div高度_css实现div两列布局(两种方法)
  2. 【spring】动态代理
  3. 【Sql Server】DateBase-子查询
  4. 【Design pattern】设计模式思路总结(一)
  5. Adam那么棒,为什么还对SGD念念不忘 (1) —— 一个框架看懂优化算法
  6. 超轻量AI引擎MindSpore Lite
  7. 客快物流大数据项目(二十五):初始化业务数据
  8. CentOS7在防火墙开启与关闭以及端口操作
  9. 自己做网站服务器需要买吗,自己做网站要买服务器
  10. 2个RecyclerView 联动