当前位置: 首页 > article >正文

【测试开发】python 应用时间做事情

python 应用时间做事情

文章目录

  • python 应用时间做事情
    • 1. 平时操作时间用于测试:可读性时间和不可读时间
      • 1.1. 应用场景
    • 2. 获取时间戳(10位和13位)
    • 3. 应用
      • 3.1. 格式化的时间 -> 时间戳
      • 3.2. `10` 位时间戳 -> 格式化的时间
      • 3.3. `13` 位时间戳 -> 格式化时间
      • 3.4. 获取前几天的日期
    • 4. 资料

author: jwensh
date: 2023.03.31

1. 平时操作时间用于测试:可读性时间和不可读时间

  • 可读性时间:格式话的时间字符串
  • 不可读时间:时间戳或时间对象(10位和13位)
    • time.struct_time
    • datetime.timedelta

1.1. 应用场景

  1. 日志时间线、页面展示时间
  2. 计算日期时间间隔
  3. 不同时区同步数据

更多的是各种格式化的和时间戳 转为时间对象 ,然后进行计算,结果在转为可读的字符串

2. 获取时间戳(10位和13位)

在python 开发web程序时,需要调用第三方的相关接口,在调用时,需要对请求进行签名。需要用到unix时间戳。
在python里,在网上介绍的很多方法,得到的时间戳是10位。而java里默认是13位(milliseconds,毫秒级的)。

下面介绍python获得时间戳的方法:

1、10 位时间戳获取方法:

>>> import time
>>> t = time.time()
>>> print(t)
1680255781.356787
>>> print(int(t))
1680255781

强制转换是直接去掉小数位。

2、13 位时间戳获取方法:

(1)默认情况下python的时间戳是以秒为单位输出的float

>>> import time
>>> time.time()
1680255863.563112

通过把秒转换毫秒的方法获得13位的时间戳:

>>> import time
>>> t = int(round(time.time() * 1000))
>>> print(t)
1680255901096

round()是四舍五入。

>>> import time
>>> current_milli_time = lambda: int(round(time.time() * 1000))
>>> current_milli_time()
1680255945566

3. 应用

3.1. 格式化的时间 -> 时间戳

>>> import time
>>> a = time.strptime("2023-03-01 16:29:59", "%Y-%d-%m %H:%M:%S")
>>> print(int(time.mktime(a)))
1672734599

3.2. 10 位时间戳 -> 格式化的时间

  • timestamp is number of seconds since 1970-01-01
  • convert the timestamp to a datetime object in the local timezone
  • print the datetime object and its type
>>> from datetime import datetime
>>> timestamp = 1672734599
>>> dt_object = datetime.fromtimestamp(timestamp)
>>> print("dt_object =", dt_object)
dt_object = 2023-01-03 16:29:59
>>> print(datetime.fromtimestamp(1677753096).strftime('%Y%m%d %H:%M:%S'))
20230302 18:31:36
>>> print("type(dt_object) =", type(dt_object))
type(dt_object) = <class 'datetime.datetime'>

3.3. 13 位时间戳 -> 格式化时间

>>> import time
>>> now = int(round(time.time()*1000))
>>> now02 = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(now/1000))
>>> now02
'2023-03-31 17:50:54'

3.4. 获取前几天的日期

def get_yesterday(d):
    today = datetime.date.today()
    one = datetime.timedelta(days=d)
    yesterday = today - one
    return yesterday

4. 资料

https://www.cnblogs.com/pinpin/p/9882852.html


http://www.kler.cn/a/6075.html

相关文章:

  • Mysql 性能优化:索引条件下推(ICP)
  • nodejs的降级
  • el-table 多级表头
  • 如何在 Windows 10/11 上录制带有音频的屏幕 [3 种简单方法]
  • 微服务拆分的艺术:构建高效、灵活的系统架构
  • Wi-Fi Direct (P2P)原理及功能介绍
  • 3.JAVA基础面试题:其他
  • git pull git push的详细使用
  • 帮公司面试了一个32岁的程序员,只因这一个细节,被我一眼看穿是培训班出来的,没啥工作经验...
  • C++笔记——第十二篇 二叉搜索树
  • 【对比学习(二)】如何得到正负样本?下游任务的具体执行阶段(以特斯拉为例简要讲解)?你知道什么是“模型坍塌”么?【NLP】中该如何做对比学习?
  • 初识Matlab2012a的神经网络工具箱(1)
  • 【LeetCode】二叉树的中序遍历(递归,迭代,Morris遍历)
  • SELECT COUNT(*) 会造成全表扫描吗
  • Disjoint 集合数据结构或 Union-Find 算法简介
  • jsp823科研项目申报管理网站cc94程序mysql+java
  • Uni-Mol: A Universal 3D Molecular Representation Learning Framework
  • 使用new bing chat成功了
  • 华为OD机试用java实现 -【数字的排列 or 数字反转打印】
  • CRM客户管理系统不被销售接受的五大原因
  • 二、MySQL 基础
  • 【软考——系统架构师】系统开发基础知识
  • 如何保证RocketMQ顺序消息以及可能出现的问题
  • Databend 开源周报第 86 期
  • 【CSS】清除浮动 ① ( 清除浮动简介 | 清除浮动语法 | 清除浮动 - 额外标签法 )
  • 计算机组成原理:5. 输入输出系统