DeLorean模块详解

简介: DeLorean模块详解

DeLorean是一个Python的第三方模块,基于 pytz 和 dateutil 开发的,用于处理Python中日期时间的格式转换。

由于时间转换是一个足够微妙的问题,DeLorean希望为移位、操作和生成日期时间提供一种更干净、更省事的解决方案。比如,实例化字符串形式的时间对象,Delorean只需要 parse 指定字符串,不需要声明其格式就可以进行转换。



1.准备


开始之前,你要确保Python和pip已经成功安装在电脑上。

请选择以下任一种方式输入命令安装依赖

1. Windows 环境 打开 Cmd (开始-运行-CMD)。
2. MacOS 环境 打开 Terminal (command+空格输入Terminal)。
3. 如果你用的是 VSCode编辑器 或 Pycharm,可以直接使用界面下方的Terminal.

pip install Delorean


2.Delorean 基础使用



轻松获取当前时间:

from delorean import Delorean
d = Delorean()
print(d)
# Delorean(datetime=datetime.datetime(2021, 10, 6, 9, 5, 57, 611589), timezone='UTC')


将datetime格式的时间转化为Delorean:

import datetime
from delorean import Delorean
d = Delorean()
print(d)
d = Delorean(datetime=datetime.datetime(2018, 5, 10, 8, 52, 23, 560811), timezone='UTC')
# 这里默认的是UTC时间
print(d)
# Delorean(datetime=datetime.datetime(2021, 10, 6, 9, 5, 57, 611589), timezone='UTC')
# Delorean(datetime=datetime.datetime(2018, 5, 10, 8, 52, 23, 560811), timezone='UTC')


转换为国内时区:


import datetime
from delorean import Delorean
d = Delorean(datetime=datetime.datetime(2018, 5, 10, 8, 52, 23, 560811), timezone='UTC')
d = d.shift("Asia/Shanghai")
print(d)
# Delorean(datetime=datetime.datetime(2018, 5, 10, 16, 52, 23, 560811), timezone='Asia/Shanghai')


输出为 datetime、date 也不在话下:

import datetime
from delorean import Delorean
d = Delorean(datetime=datetime.datetime(2018, 5, 10, 8, 52, 23, 560811), timezone='UTC')
d = d.shift("Asia/Shanghai")
print(d.datetime)
print(d.date)
# 2018-05-10 16:52:23.560811+08:00
# 2018-05-10


查看无时区时间及时间戳:

import datetime
from delorean import Delorean
d = Delorean(datetime=datetime.datetime(2018, 5, 10, 8, 52, 23, 560811), timezone='UTC')
d = d.shift("Asia/Shanghai")
print(d.epoch)
print(d.naive)
# 1525942343.560811
# 2018-05-10 08:52:23.560811


用unix时间戳初始化Delorean:

from delorean import epoch
d = epoch(1357971038.102223).shift("Asia/Shanghai")
print(d)
# Delorean(datetime=datetime.datetime(2013, 1, 12, 14, 10, 38, 102223), timezone='Asia/Shanghai')


Delorean支持timedelta的时间加减法。Delorean可以使用timedelta进行加减,得到一个Delorean对象:

import datetime
from delorean import Delorean
d = Delorean(datetime=datetime.datetime(2018, 5, 10, 8, 52, 23, 560811), timezone='UTC')
d = d.shift("Asia/Shanghai")
print(d)
d2 = d + datetime.timedelta(hours=2)
print(d2)
d3 = d - datetime.timedelta(hours=3)
print(d3)
# Delorean(datetime=datetime.datetime(2018, 5, 10, 16, 52, 23, 560811), timezone='Asia/Shanghai')
# Delorean(datetime=datetime.datetime(2018, 5, 10, 18, 52, 23, 560811), timezone='Asia/Shanghai')
# Delorean(datetime=datetime.datetime(2018, 5, 10, 13, 52, 23, 560811), timezone='Asia/Shanghai')


3. Delorean 高级使用



通常情况下我们不关心有多少微妙或者多少秒,因此Delorean提供了非常方便的过滤方式:

from delorean import Delorean
d = Delorean()
print(d)
# Delorean(datetime=datetime.datetime(2019, 3, 14, 4, 0, 50, 597357), timezone='UTC')
d.truncate('second')
# Delorean(datetime=datetime.datetime(2019, 3, 14, 4, 0, 50), timezone='UTC')
d.truncate('hour')
# Delorean(datetime=datetime.datetime(2019, 3, 14, 4, 0), timezone='UTC')
d.truncate('month')
# Delorean(datetime=datetime.datetime(2019, 3, 1, 0, 0), timezone='UTC')
d.truncate('year')
# Delorean(datetime=datetime.datetime(2019, 1, 1, 0, 0), timezone='UTC')


另外,datetime格式的字符串处理的时候转换需要标明各种各样的格式,在Delorean你直接parse就可以了:

from delorean import parse
parse("2011/01/01 00:00:00 -0700")
# Delorean(datetime=datetime.datetime(2011, 1, 1, 0, 0), timezone=pytz.FixedOffset(-420))
parse("2018-05-06")
# Delorean(datetime=datetime.datetime(2018, 6, 5, 0, 0), timezone='UTC')
相关文章
|
编译器 Shell Android开发
工具技能学习(一):前置技能-makfile、make、.mk
工具技能学习(一):前置技能-makfile、make、.mk
920 0
|
12月前
|
SQL 存储 消息中间件
Trino权威指南
Trino(原Presto SQL)是一款开源分布式SQL查询引擎,专为大数据联邦查询设计。它支持秒级查询PB级数据,可无缝对接Hive、MySQL、Kafka等20+异构数据源。其核心特性包括高速查询、弹性扩展和低成本使用,适合交互式分析与BI场景。Trino采用无共享架构,通过列式内存格式和动态代码生成优化性能,并提供丰富的连接器实现计算存储分离,最大化下推优化以提升效率。
1995 3
|
5月前
|
存储 消息中间件 监控
API集成方案:淘宝多店铺管理,统一运营!
本文探讨如何通过淘宝开放平台API集成,构建多店铺统一运营系统。解决数据分散、操作重复、协同困难等痛点,实现商品、库存、订单、会员及营销的集中管理与自动化操作,提升效率、降低成本,并为智能化决策提供支撑,助力电商规模化发展。(238字)
|
10月前
|
机器学习/深度学习 存储 缓存
DNS解析中TTL参数深度解析
本文深度解析DNS解析中的TTL参数,涵盖技术规范、优化策略及工程实践。内容包括TTL定义、分层缓存机制、企业配置建议、变更管理流程、特殊场景应对方案及前沿技术演进,助你全面掌握TTL优化方法。
809 1
|
5月前
|
人工智能 弹性计算 图形学
阿里云无影 GPU 云电脑多少钱?2026年阿里云无影 GPU 云电脑(NVIDIA RTX 5880)收费标准与选型指南
阿里云无影 GPU 云电脑搭载 NVIDIA RTX 5880 专业显卡,凭借强劲算力成为 3D 建模、工业设计、AI 推理等高性能场景的优选。其核心优势在于无需本地部署硬件,通过云端即可获取专业级计算能力,同时费用灵活可控。以下从配置与计费逻辑、各规格收费标准、性价比分析及注意事项四方面,用通俗语言详细解析,帮助用户根据需求选择合适方案。
|
5月前
|
安全 应用服务中间件 Apache
2026年阿里云服务器搭建Drupal系统网站指南:新手友好部署与配置流程
Drupal作为功能强大的开源内容管理系统,凭借灵活的扩展性、丰富的模块生态和安全稳定的特性,广泛应用于企业官网、电商平台、社区论坛等场景。对于新手而言,在阿里云服务器上搭建Drupal无需复杂的技术储备,核心围绕“环境部署、系统安装、基础配置”三大环节展开。2026年阿里云服务器提供了轻量应用服务器和ECS两种部署载体,本文将详细拆解适合新手的完整流程,涵盖环境准备、Drupal安装、安全加固、功能优化等关键步骤,确保不改变原意且无营销表述,帮助新手顺利搭建可用的Drupal网站。
339 0
|
11月前
|
机器学习/深度学习 人工智能 PyTorch
当量子力学遇上人工智能:科幻照进现实了吗?
当量子力学遇上人工智能:科幻照进现实了吗?
418 0
|
存储 机器学习/深度学习 人工智能
TaoAvatar:手机拍出电影级虚拟人!阿里3D高斯黑科技让动捕设备下岗
阿里巴巴最新推出的TaoAvatar技术,通过3D高斯溅射实现照片级虚拟人实时渲染,支持多信号驱动与90FPS流畅运行,将彻底改变电商直播与远程会议体验。
910 8
TaoAvatar:手机拍出电影级虚拟人!阿里3D高斯黑科技让动捕设备下岗
|
人工智能 算法 搜索推荐
2024 “AI+硬件创新大赛”获奖名单出炉,浙大、上交与复旦联队等夺冠
2024年11月30日,由开放源子开源基金会主办,魔搭社区、英特尔与阿里云共同承办的“AI+硬件创新大赛”总决赛在杭州圆满落幕。
616 6
2024 “AI+硬件创新大赛”获奖名单出炉,浙大、上交与复旦联队等夺冠

热门文章

最新文章