Python --datetime模块
目录
1, 获取datetime时间
2, datetime与timestamp转换
2-1, datetime转timestamp
2-2, timestamp转datetime
3, str格式与datetime转换
3-1, datetime转str格式
3-2, str格式转datetime
4, datetime运算
4-1, datetime之间运算
4-2, 通过timedelta加减
5, 时区转换
5-1, 本地时间转换为UTC时间
5-2, 时区间转换
6, 带时区datetime转换为timestamp
datetime是python的内置模块, 直接导入即可使用
1, 获取datetime时间
In [59]: from datetime import datetime# 当前时间转换为datetime格式
In [60]: now = datetime.now()In [61]: now
Out[61]: datetime.datetime(2023, 8, 29, 21, 58, 51, 671852)# 设置一个datetime时间
In [64]: dt = datetime(2023, 8, 29, 22, 1, 10)In [65]: dt
Out[65]: datetime.datetime(2023, 8, 29, 22, 1, 10)
2, datetime与timestamp转换
2-1, datetime转timestamp
In [92]: from datetime import datetimeIn [93]: now = datetime.now()# 获取当前系统时间的datetime
In [94]: now
Out[94]: datetime.datetime(2023, 8, 29, 15, 46, 41, 445550)# datetime转换为timestamp
In [96]: now.timestamp()
Out[96]: 1693295201.44555
2-2, timestamp转datetime
# timestamp转换为datetime
In [80]: t = datetime.now().timestamp()In [81]: t
Out[81]: 1693317944.383471In [82]: datetime.fromtimestamp(t)
Out[82]: datetime.datetime(2023, 8, 29, 22, 5, 44, 383471)# 转换为标准的utc的datetime
In [84]: datetime.utcfromtimestamp(t)
Out[84]: datetime.datetime(2023, 8, 29, 14, 5, 44, 383471)
3, str格式与datetime转换
3-1, datetime转str格式
datetime转换为str,使用的方法是strftime()
# 获取时间的datetime格式
In [85]: now = datetime.now()In [86]: now
Out[86]: datetime.datetime(2023, 8, 29, 22, 8, 32, 807460)# datetime格式转换为字符串格式
In [87]: now.strftime('%Y-%m-%d %H:%M:%S')
Out[87]: '2023-08-29 22:08:05'
格式化字符:
%a:星期英文格式缩写
In [134]: datetime.now().strftime('%a')
Out[134]: 'Tue'
%A:星期英文格式全写
In [135]: datetime.now().strftime('%A')
Out[135]: 'Tuesday'
%w:星期数字格式
In [136]: datetime.now().strftime('%w')
Out[136]: '2'
%d:数字格式当月号数
# 当月29号
In [137]: datetime.now().strftime('%d')
Out[137]: '29'
%b:月份英文格式缩写
In [138]: datetime.now().strftime('%b')
Out[138]: 'Aug'
%B:月份英文格式全写
In [139]: datetime.now().strftime('%B')
Out[139]: 'August'
%m:月份数字格式
In [140]: datetime.now().strftime('%m')
Out[140]: '08'
%y:年份,仅显示后两位
# 表示23年
In [141]: datetime.now().strftime('%y')
Out[141]: '23'
%Y:年份,显示所有
In [142]: datetime.now().strftime('%Y')
Out[142]: '2023'
%H:24小时制显示小时
# 表示是16点钟
In [143]: datetime.now().strftime('%H')
Out[143]: '16'
%I:12小时制显示小时
# 表示四点钟
In [144]: datetime.now().strftime('%I')
Out[144]: '04'
%p:回显pm或am
In [146]: datetime.now().strftime('%p')
Out[146]: 'PM'
%M:分钟数
In [147]: datetime.now().strftime('%M')
Out[147]: '31'
%S:秒数
In [148]: datetime.now().strftime('%S')
Out[148]: '41'
%f:毫秒数
In [149]: datetime.now().strftime('%f')
Out[149]: '953566'
%j:表示当前是今年的第多少天
# 本年第241天
In [152]: datetime.now().strftime('%j')
Out[152]: '241'
%U:当年的第多少周(星期天作为一周第一天)
# 本年的第35周
In [153]: datetime.now().strftime('%U')
Out[153]: '35'
%w:当年的第多少周(星期一作为一周第一天)
# 本年第35周
In [155]: datetime.now().strftime('%W')
Out[155]: '35'
%c:英文格式的日期时间格式
In [160]: datetime.now().strftime('%c')
Out[160]: 'Tue Aug 29 16:42:30 2023'
%X:时间格式, 以“:”分割
In [161]: datetime.now().strftime('%X')
Out[161]: '16:43:00'
%x:日期格式,以反斜杠分割
In [162]: datetime.now().strftime('%x')
Out[162]: '08/29/23'
3-2, str格式转datetime
str格式的时间转换为datetime使用strptime方法
In [89]: str_time = '2023-08-29 22:08:32'In [90]: datetime.strptime(str_time, '%Y-%m-%d %H:%M:%S')
Out[90]: datetime.datetime(2023, 8, 29, 22, 8, 32)
4, datetime运算
4-1, datetime之间运算
datetime之间支持之间相减,不支持相加
# datetime之间相减
In [199]: datetime.now() - datetime(2023,1,1)
Out[199]: datetime.timedelta(days=240, seconds=62056, microseconds=554334)
4-2, 通过timedelta加减
使用timedelta需要先导入:from datetime import timedelta
In [200]: from datetime import timedelta# 加3天
In [201]: datetime.now() + timedelta(days=3)
Out[201]: datetime.datetime(2023, 9, 1, 17, 16, 36, 897620)# 减3天
In [203]: datetime.now() - timedelta(days=3)
Out[203]: datetime.datetime(2023, 8, 26, 17, 16, 46, 674351)# 加3小时
In [204]: datetime.now() + timedelta(hours=3)
Out[204]: datetime.datetime(2023, 8, 29, 20, 16, 53, 746510)# 减3小时
In [205]: datetime.now() - timedelta(hours=3)
Out[205]: datetime.datetime(2023, 8, 29, 14, 16, 57, 10485)# 加3分钟
In [206]: datetime.now() + timedelta(minutes=3)
Out[206]: datetime.datetime(2023, 8, 29, 17, 20, 11, 881435)# 减3分钟
In [207]: datetime.now() - timedelta(minutes=3)
Out[207]: datetime.datetime(2023, 8, 29, 17, 14, 15, 66273)
5, 时区转换
5-1, 本地时间转换为UTC时间
In [247]: from datetime import datetime, timedelta, timezone# 创建UTC-8时区
In [248]: tz_utc_8 = timezone(timedelta(hours=8))In [249]: now = datetime.now()In [250]: now
Out[250]: datetime.datetime(2023, 8, 29, 21, 10, 10, 583383)# 本地时间转换为UTC时间, tzinfo为时区属性
In [251]: dt = now.replace(tzinfo=tz_utc_8)In [252]: dt
Out[252]: datetime.datetime(2023, 8, 29, 21, 10, 10, 583383, tzinfo=datetime.timezone(datetime.timedelta(seconds=28800)))
5-2, 时区间转换
# 通过datetime.utcnow()获取utc时间,并设置为UTC0
In [38]: utc_dt = datetime.utcnow().replace(tzinfo=timezone.utc)In [39]: utc_dt
Out[39]: datetime.datetime(2023, 8, 29, 13, 40, 24, 247748, tzinfo=datetime.timezone.utc)# UTC0时区转换到UTC8时区
In [41]: bj_dt = utc_dt.astimezone(timezone(timedelta(hours=8)))In [42]: bj_dt
Out[42]: datetime.datetime(2023, 8, 29, 21, 40, 24, 247748, tzinfo=datetime.timezone(datetime.timedelta(seconds=28800)))# UTC8时区转换到UTC9时区
In [43]: dj_dt = utc_dt.astimezone(timezone(timedelta(hours=9)))In [44]: dj_dt
Out[44]: datetime.datetime(2023, 8, 29, 22, 40, 24, 247748, tzinfo=datetime.timezone(datetime.timedelta(seconds=32400)# 时区间转换
In [45]: bj_dt.astimezone(timezone(timedelta(hours=9)))
Out[45]: datetime.datetime(2023, 8, 29, 22, 40, 24, 247748, tzinfo=datetime.timezone(datetime.timedelta(seconds=32400)
6, 带时区datetime转换为timestamp
这样的好处在于timestamp和时区没有关系,达到正确存储的作用
import re
from datetime import datetime, timezone, timedeltadef datetime_to_timestamp(str_time, time_zone):dt = datetime.strptime(str_time, '%Y-%m-%d %H:%M:%S')# 将dt的时区替换为指定的时区dt_utc = dt.replace(tzinfo=timezone(timedelta(hours=int(re.search(r'[+-]\d+', time_zone).group()))))result = dt_utc.timestamp()return resultif __name__ == "__main__":t1 = datetime_to_timestamp('2015-6-1 08:10:30', 'UTC+7:00')assert t1 == 1433121030.0, t1t2 = datetime_to_timestamp('2015-5-31 16:10:30', 'UTC-09:00')assert t2 == 1433121030.0, t2
相关文章:
Python --datetime模块
目录 1, 获取datetime时间 2, datetime与timestamp转换 2-1, datetime转timestamp 2-2, timestamp转datetime 3, str格式与datetime转换 3-1, datetime转str格式 3-2, str格式转datetime…...
顺序表链表OJ题(3)——【数据结构】
W...Y的主页 😊 代码仓库分享 💕 前言: 今天是链表顺序表OJ练习题最后一次分享,每一次的分享题目的难度也再有所提高,但是我相信大家都是非常机智的,希望看到博主文章能学到东西的可以一键三连关注一下博主…...
【Azure】Virtual Hub vWAN
虚拟 WAN 文档 Azure 虚拟 WAN 是一个网络服务,其中整合了多种网络、安全和路由功能,提供单一操作界面。 我们主要讨论两种连接情况: 通过一个 vWAN 来连接不通的 vNET 和本地网络。以下是一个扩展的拓扑 结合 vhub,可以把两个中…...
React Navigation 使用导航
在 Web 浏览器中,您可以使用锚标记链接到不同的页面。当用户单击链接时,URL 会被推送到浏览器历史记录堆栈中。当用户按下后退按钮时,浏览器会从历史堆栈顶部弹出该项目,因此活动页面现在是以前访问过的页面。React Native 不像 W…...
双指针算法,基础算法实践,基本的算法的思想,双指针算法的实现
一,定义 双指针算法是一种常用于解决数组和链表问题的算法技巧。它的核心思想是使用两个指针在数据结构中按照一定的规则移动,从而达到快速搜索或处理数据的目的。这个技巧通常用于优化算法,降低时间复杂度,提高程序的执行效率。…...
idea http request无法识别环境变量
问题描述 创建了环境变量文件 http-client.env.json,然后在*.http 文件中引用环境变量,运行 HTTP 请求无法读取环境变量文件中定义的变量。 事故现场 IDEA 版本:2020.2 2021.2 解决步骤 2020.2 版本环境变量无法读取 2021.2 版本从 2020.…...
性能测试常见的测试指标
一、什么是性能测试 先看下百度百科对它的定义 性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。我们可以认为性能测试是:通过在测试环境下对系统或构件的性能进行探测,用以验证在生产环境下系统性能…...
并发 04(Callable,CountDownLatch)详细讲解
并发 Callable 1 可以返回值 2可以抛出异常 泛型指的是返回值的类型 public class Send {public static void main(String[] args) {//怎么启动Callable//new Thread().start();Aaa threadnew Aaa();FutureTask futureTasknew FutureTask(thread);new Thread(futureTask,&qu…...
Json路径表达式
原json路径 {"timeStamp": "20220801110008","transIDO": "6ba9088c981b407fb38feasdf09","version": "1.0.0","signMethod": "md5","content": "{\"companyName\&quo…...
【uniapp 上传图片示例】
以下是 uniapp 上传图片的详细步骤示例: 定义一个方法,用于选择图片并上传: methods: {chooseImage() {uni.chooseImage({count: 1, // 最多选择的图片数量sizeType: [original, compressed], // 可以指定原图或压缩图sourceType: [album, …...
apache2配置文件 Require all granted是什么意思
修改apache2的配置文件 /etc/apache2/apache2.conf,需要增加网站代码的路径,下列配置是什么意思呢 <Directory "/var/www/html">Options FollowSymLinksAllowOverride AllRequire all granted </Directory> 1. Options Options …...
c/c++ 的一些知识
c 面向对象是一种思想,通常情况下都是以组合为主,也就是在子类里定义一个基类struct base_t {void (*method)(base_t *base_p); };struct children_t {int a;int b;base_t base;void (*method)(children_t *children_p); };children_t children_creat(i…...
Rancher上的应用服务报错:413 Request Entity Too Large
UI->rancher的ingress->UI前端(在nginx里面)->zuul->server 也就是说没经过一次http servlet 都要设置一下大小 1.rancher的ingress 当出现Request Entity Too Large时,是由于传输流超过1M。 1、需要在rancher的ingress中设置参数解决。 配置注释&a…...
【LeetCode题目详解】第八章 贪心算法 part01 理论基础 455.分发饼干 376. 摆动序列 53. 最大子序和 day31补
贪心算法理论基础 关于贪心算法,你该了解这些! 题目分类大纲如下: # 什么是贪心 贪心的本质是选择每一阶段的局部最优,从而达到全局最优。 这么说有点抽象,来举一个例子: 例如,有一堆钞票&…...
ssm+vue中国咖啡文化宣传网站源码和论文
ssmvue中国咖啡文化宣传网站源码和论文078 开发工具:idea 数据库mysql5.7 数据库链接工具:navcat,小海豚等 技术:ssm 课题背景 随着时代的发展和人们生活理念的进一步改变,咖啡业已经成为了全球经济中发展最迅猛的产业之一。…...
基于MATLAB开发AUTOSAR软件应用层Code mapping专题-part 4 Data store标签页介绍
这篇文章我们继续讲解code-mapping的Data stores页,这个页的内容对应的SIMULINK中的模块是Data store memory。 我们首先在模型中创建一个Data store memory模块,如图: Data store memory模块的作用相当于一个全局变量,我们可以在模型的功能逻辑里将一个信号存进去,在另…...
区间型动态规划典型题目:lintcode 476 · 石子归并【中等,免费】lintcode 593 · 石头游戏 II【中等 vip】
题目lintcode476 链接,描述 https://www.lintcode.com/problem/476/description 有一个石子归并的游戏。最开始的时候,有n堆石子排成一列,目标是要将所有的石子合并成一堆。合并规则如下:每一次可以合并相邻位置的两堆石子 每次…...
4. 池化层相关概念
4.1 池化层原理 ① 最大池化层有时也被称为下采样。 ② dilation为空洞卷积,如下图所示。 ③ Ceil_model为当超出区域时,只取最左上角的值。 ④ 池化使得数据由5 * 5 变为3 * 3,甚至1 * 1的,这样导致计算的参数会大大减小。例如1080P的电…...
ChatGPT Prompting开发实战(一)
一、关于ChatGPT Prompting概述 当我们使用ChatGPT或者调用OpenAI的API时,就是在使用prompt进行交互,用户在对话过程中输入的一切信息都是prompt(提示词),当然工业级的prompt与人们通常理解的prompt可能不太一样。下面…...
VB车辆管理系统SQL设计与实现
摘 要 随着信息时代的到来,信息高速公路的兴起,全球信息化进入了一个新的发展时期。人们越来越认识到计算机强大的信息模块处理功能,使之成为信息产业的基础和支柱。 我国经济的快速发展,汽车已经成为人们不可缺少的交通工具。对于拥有大量车辆的机关企事业来说,车辆的…...
Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...
中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试
作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...
visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...
如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...
Reasoning over Uncertain Text by Generative Large Language Models
https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...
python报错No module named ‘tensorflow.keras‘
是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...
Spring是如何解决Bean的循环依赖:三级缓存机制
1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间互相持有对方引用,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...
AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别
【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势…...
