1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. """
  4. __title__ = '操作时间的工具类'
  5.  
  6. """
  7. import datetime
  8. import time
  9.  
  10. # ==========================
  11. # ========== time ==========
  12. # ==========================
  13.  
  14. def getCurrentMilliSecondTime():
  15. """
  16. description: 获取当前时间-毫秒级
  17. return: 1557730376981 -> str
  18. """
  19. timestamps = str(round(time.time() * 1000))
  20. return timestamps
  21.  
  22. def getCurrentSecondTime():
  23. """
  24. description: 获取当前时间-秒级
  25. return: 1557730377 -> str
  26. """
  27. timestamps = str(round(time.time()))
  28. return timestamps
  29.  
  30. def getCurrentTimeTuple(times=time.time()):
  31. """
  32. description: 接受秒级时间戳并返回时间元组(与mktime(tuple)相反)
  33. times: 默认当前时间 可传second
  34. return: (tm_year=2019, tm_mon=5, tm_mday=13, tm_hour=10, tm_min=9, tm_sec=18, tm_wday=0, tm_yday=133, tm_isdst=0) -> tuple
  35. tips: time.localtime() 不传参则取当前时间
  36. """
  37. timestamps = time.localtime(times)
  38. return timestamps
  39.  
  40. def getTimeByTuple(tupleTime=time.localtime()):
  41. """
  42. description: 接受时间元组并返回秒级时间戳(与localtime(sec)相反)
  43. tupleTime: 默认当前时间的元组 可通过time.localtime() or datetime.datetime.now().timetuple()获取
  44. return: 1557733061 -> str
  45. """
  46. timestamps = str(round(time.mktime(tupleTime)))
  47. return timestamps
  48.  
  49. def getCurrentFormatTimeStr(times=time.time()):
  50. """
  51. description: 将指定时间元组格式化为字符串
  52. times: 默认当前时间 可传second
  53. return: 2019-05-13 15:00:47 -> str
  54. tips: %y 两位数的年份表示(00-99) %Y 四位数的年份表示(000-9999) %m 月份(01-12) %d 月内中的一天(0-31)
  55. %H 24小时制小时数(0-23) %I 12小时制小时数(01-12) %M 分钟数(00=59) %S 秒(00-59) %w 星期(0-6)
  56. """
  57. timestamps = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(times))
  58. return timestamps
  59.  
  60. def getCurrentTimeTupleByFormatStr(time_str=str(datetime.datetime.now()).split(".")[0], format_type="%Y-%m-%d %H:%M:%S"):
  61. """
  62. description: 接受格式化字符串返回时间元组
  63. time_str: 格式化字符串 如:2019-05-13 15:00:47 默认当前时间
  64. format_type: 格式化规则 如:%Y-%m-%d %H:%M:%S 默认%Y-%m-%d %H:%M:%S
  65. return: (tm_year=2019, tm_mon=5, tm_mday=13, tm_hour=10, tm_min=9, tm_sec=18, tm_wday=0, tm_yday=133, tm_isdst=0) -> tuple
  66. """
  67. return time.strptime(time_str, format_type)
  68.  
  69. def getCurrentTimeStr():
  70. """
  71. description: 获取当前时间的可读形式字符串
  72. return: Mon May 13 11:27:42 2019 -> str
  73. """
  74. return time.ctime()
  75.  
  76. def getCurrentTimeStrByTuple(tupleTime=time.localtime()):
  77. """
  78. description: 获取指定时间的可读形式字符串
  79. tupleTime: 时间元组 可通过time.localtime() or datetime.datetime.now().timetuple()获取 默认当前时间的元组
  80. return: Mon May 13 11:27:42 2019 -> str
  81. """
  82. return time.asctime(tupleTime)
  83.  
  84. def sleepTime():
  85. """
  86. description: 推迟调用线程的运行
  87. """
  88. for i in range(4):
  89. print(i)
  90. time.sleep(3)
  91.  
  92. # ======================
  93. # ====== datetime ======
  94. # ======================
  95.  
  96. def getNowDateTime():
  97. """
  98. description: 获取当前日期&时间
  99. return: 2019-05-13 14:41:15 -> str
  100. """
  101. timestamps = str(datetime.datetime.now()).split(".")[0]
  102. return timestamps
  103.  
  104. def getNowTime():
  105. """
  106. description: 获取当前时间
  107. return: 14:41:15 -> str
  108. """
  109. timestamps = str(datetime.datetime.now().time()).split(".")[0]
  110. return timestamps
  111.  
  112. def getTodayDate():
  113. """
  114. description: 获取当前日期
  115. return: 2019-05-13 -> str
  116. tipe: datetime.datetime.now().date()有相同效果
  117. """
  118. timestamps = str(datetime.date.today())
  119. return timestamps
  120.  
  121. def getTimeDate(times=time.time()):
  122. """
  123. description: 获取指定时间戳的日期
  124. time: 秒 默认当前时间
  125. return: 2019-05-13 -> str
  126. tips: 一天86400秒
  127. """
  128. timestamps = str(datetime.date.fromtimestamp(round(times)))
  129. return timestamps
  130.  
  131. # 获取距离现在时间的任意时间的日期 正数 加,负数 减 return:2019-05-12
  132. def getAnyDateTime(day, hour=0, min=0, sec=0):
  133. """
  134. description: 获取距离现在时间的任意时间的日期&时间
  135. day: 天数 1代表当前时间+1天 -1代表当前时间-1天
  136. hour: 小时 2代表当前时间+2h -2代表当前时间-2h 默认=0
  137. min: 分钟 30代表当前时间+30min -30代表当前时间-30m 默认=0
  138. sec: 秒 120代表当前时间+120s -120代表当前时间-120s 默认=0
  139. return: 2019-05-15 15:37:41 -> str
  140. """
  141. return str(datetime.datetime.now() + datetime.timedelta(days=day, hours=hour, minutes=min, seconds=sec)).split(".")[0]
  142.  
  143. def getAnyDateSecondTime(day, hour=0, min=0, sec=0):
  144. """
  145. description: 获取距离现在时间的任意时间的秒数
  146. day: 天数 1代表当前时间+1天 -1代表当前时间-1天
  147. hour: 小时 2代表当前时间+2h -2代表当前时间-2h 默认=0
  148. min: 分钟 30代表当前时间+30min -30代表当前时间-30m 默认=0
  149. sec: 秒 120代表当前时间+120s -120代表当前时间-120s 默认=0
  150. return: 1557902182 -> str
  151. """
  152. anyDay = datetime.datetime.now() + datetime.timedelta(days=day, hours=hour, minutes=min, seconds=sec)
  153. return str(round(time.mktime(anyDay.timetuple())))
  154.  
  155. def getTodayTime():
  156. """
  157. description: 获取当天0点的时间戳
  158. return: 1557676800 -> str
  159. """
  160. return str(round(time.mktime(datetime.date.today().timetuple())))
  161.  
  162. def getCurrentWeekTime():
  163. """
  164. description: 获取本周周一0点
  165. return: 1557676800 -> str
  166. tips: 可替换成: timestamps = time.mktime(time.strptime(time.strftime("%Y-%m-%d", time.localtime(times)), "%Y-%m-%d"))
  167. """
  168. week = int(time.strftime("%w", time.localtime()))
  169. times = round(time.time()) - (week - 1) * 86400
  170. timestamps = time.mktime(datetime.date.fromtimestamp(times).timetuple())
  171. return str(round(timestamps))
  172.  
  173. def test():
  174. print(getCurrentMilliSecondTime())
  175. print(getCurrentSecondTime())
  176. print(getCurrentFormatTimeStr())
  177. print(getCurrentTimeTupleByFormatStr())
  178. print("=======")
  179. print(getCurrentTimeStr())
  180. print(getCurrentTimeStrByTuple(time.localtime()))
  181. print(getTimeByTuple(time.localtime()))
  182. print("=======")
  183. print(getNowDateTime())
  184. print(getNowTime())
  185. print(getNowDateTime())
  186. print(getTodayDate())
  187. print(getTimeDate(time.time() - 86400))
  188. print("=======")
  189. print(getAnyDateTime(2))
  190. print(getAnyDateSecondTime(2))
  191. print("=======")
  192. print(getTodayTime())
  193. print(getCurrentWeekTime())
  194.  
  195. if __name__ == '__main__':
  196. print(test())

Python工具类(二)—— 操作时间相关的更多相关文章

  1. C#常用工具类——Excel操作类

    /// 常用工具类——Excel操作类 /// <para> ------------------------------------------------</para> / ...

  2. [C#] 常用工具类——文件操作类

    /// <para> FilesUpload:工具方法:ASP.NET上传文件的方法</para> /// <para> FileExists:返回文件是否存在&l ...

  3. C#常用工具类——Excel操作类(ZT)

    本文转载于: http://www.cnblogs.com/zfanlong1314/p/3916047.html /// 常用工具类——Excel操作类 /// <para> ----- ...

  4. Python工具类(一)—— 操作Mysql数据库

    如何调用直接看__main__函数里如何调用此工具类就阔以啦! # encoding=utf-8 import pymysql # 导入所有Mysql配置常量,请自行指定文件 from conf.se ...

  5. java工具类--数据库操作封装类

    java对数据库操作简单处理,如下代码即可,封装了 增删改查及获取连接.关闭连接. 代码如下: package com.test; import java.sql.Connection; import ...

  6. Java学习笔记49(DBUtils工具类二)

    上一篇文章是我们自己模拟的DBUtils工具类,其实有开发好的工具类 这里使用commons-dbutils-1.6.jar 事务的简单介绍: 在数据库中应用事务处理案例:转账案例 张三和李四都有有自 ...

  7. java Arrays工具类的操作

    package java08; /* java.util.Arrays是一个与数组相关的工具类,里面提供了大量的静态方法,用来实现数组常见的操作 public static String toStri ...

  8. java工具类(二)之java正则表达式表单验证

    java正则表达式表单验证类工具类(验证邮箱.手机号码.qq号码等) 这篇文章主要介绍了java使用正则表达式进行表单验证工具类,可以验证邮箱.手机号码.qq号码等方法,需要的朋友可以参考下. jav ...

  9. Asp.Net 常用工具类---Config操作(7)

    近期工作比较忙,忙到忘记写博客(自己的借口,主要加班下班后不想动). 月初的时候,打算每两天写一篇博文,分享自己的一些心得和开发体验,无奈现在只写到第六篇,然而时间已经是20号,岁月不饶人! 总想写点 ...

随机推荐

  1. jmeter登录配置

    前言: jmeter, Apache下的测试工具, 常用来进行压测, 项目中, 接口通常都需要进行登录才能被调用, 直接调用将提示"登录失效", 下面介绍如何在jmeter中配置参 ...

  2. 【js】 vue 2.5.1 源码学习(六) initProxy initLifeCycle 渲染函数的作用域代理

    大体思路 (五) 1. initProxy 渲染函数的作用域代理 ==> es6 如果支持proxy (hasProxy) 就用proxy 不支持就用 defineProperty() prox ...

  3. Vue基础练习之计算属性、方法、监听器

    <body> <div id="root"> {{fullName()}} {{age}} </div> <script> var ...

  4. 【38.96%】【hdu 1540】Tunnel Warfare

    Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission ...

  5. Linux 内核提交 urb

    一旦 urb 被正确地创建,并且被 USB 驱动初始化, 它已准备好被提交给 USB 核心来发送 出到 USB 设备. 这通过调用函数 usb_submit_urb 实现: int usb_submi ...

  6. 【2016福建省夏令营Day1】数据结构

    Problem 1 楼房(build.cpp/c/pas) [题目描述] 地平线(x轴)上有n个矩(lou)形(fang),用三个整数h[i],l[i],r[i]来表示第i个矩形:矩形左下角为(l[i ...

  7. blink接收器

    blink: [autorun] OPEN="AutoInst.exe"  [AskRebootTitle] Dlg1=System Settings Change Dlg2=št ...

  8. P3157 动态逆序对 CDQ分治

    动态逆序对 CDQ分治 传送门:https://www.luogu.org/problemnew/show/P3157 题意: 对于序列A,它的逆序对数定义为满足i<j,且Ai>Aj的数对 ...

  9. 21.模块的执行以及__name__

    执行结果: "E:\Program Files\JetBrains\PycharmProjects\python_demo\venv\Scripts\python.exe" &qu ...

  10. 关于java继承的哪些事

    引言 本文结合一个例子来说明继承实现的基本原理. 基类Base代码如下所示: public class Base { public static int s; private int a; stati ...