Awesome time conversion handling with support for chaining operations.
Project description
1 NbTime 介绍
NbTime 是oop面向对象开发的爽快的日期时间操作类
NbTime 支持无限链式操作来处理时间,
(因为是oop所以易用程度远远的暴击面向过程python工程师写的time_utils.py里面写几百个独立的操作时间的面向过程函数)
NbTime 入参支持字符串 时间戳 datetime对象 NbTime对象自身
NbTime 非常轻松支持时区转化
Nbtime 内置属性 datetime对象,兼容性好
1.1 安装
pip install nb_time
2 NbTime 时间值传参用法
2.1 NbTime 不传参,就是当前时间
>>> from nb_time import NbTime
>>> NbTime()
<NbTime [2024-02-29 17:51:14 +0800]>
2.2 NbTime 传参datetime对象
>>> NbTime(datetime.datetime.now())
<NbTime [2024-02-29 17:56:43 +0800]>
2.3 NbTime 传参时间戳
>>> NbTime(1709192429)
<NbTime [2024-02-29 15:40:29 +0800]>
2.4 NbTime 传参字符串,可以对字符串设置时区,例如把东七区的时间字符串转化成东8区的格式.
>>> NbTime('2024-02-26 15:58:21',datetime_formatter=NbTime.FORMATTER_DATETIME,time_zone=NbTime.TIMEZONE_EASTERN_7).to_tz('UTC+8')
<NbTime [2024-02-26 16:58:21 +0800]>
3 NbTime 链式计算时间
求3天1小时10分钟后的时间,入参支持正数和负数
>>> NbTime().shift(hours=1,minutes=10).shift(days=3)
<NbTime [2024-03-03 19:02:49 +0800]>
NbTime入参本身支持无限嵌套NbTime对象
NbTime(NbTime(NbTime(NbTime())))
<NbTime [2024-02-29 18:39:09]>
为什么 NbTime支持入参是自身类型,例如你可以方便的转时区和转字符串格式化
例如0时区的2024-02-29 07:40:34,你要转化成8时区的带毫秒带时区的时间字符串,
>>> from nb_time import NbTime
>>> NbTime(NbTime('2024-02-29 07:40:34', time_zone='UTC+0', datetime_formatter=NbTime.FORMATTER_DATETIME_NO_ZONE),
... time_zone='UTC+8', datetime_formatter=NbTime.FORMATTER_MILLISECOND).datetime_str
'2024-02-29 15:40:34.000000 +0800'
3 NbTime 时区设置
3.1 NbTime 实例化时候设置时区
实例化时候分别设置东7区和0时区
>>> NbTime(time_zone='UTC+7')
<NbTime [2024-02-29 17:05:08 +0700]>
>>> NbTime(time_zone='UTC+0')
<NbTime [2024-02-29 10:05:11 +0000]>
3.2 全局设置时区
用户不传递时区时候,默认就是操作系统时区,如果用户想统一设置时区
例如用户统一设置东8区,以后实例化就不用每次亲自传递东八区.
NbTime.set_default_time_zone('UTC+8')
4 设置时间字符串格式化
4.1 NBTime实例化时候设置时间字符串格式
用户不想要毫秒时间字符串
>>> NbTime(datetime_formatter=NbTime.FORMATTER_DATETIME)
<NbTime [2024-02-29 18:10:57 +0800]>
用户不想要字符串带时区
>>> NbTime(datetime_formatter=NbTime.FORMATTER_DATETIME_NO_ZONE)
<NbTime [2024-02-29 18:12:18]>
4.2 NBTime全局设置字符串格式
NbTime.set_default_formatter 可以全局设置时间格式字符串,就不需要每次都传递格式
>>> NbTime.set_default_formatter(NbTime.FORMATTER_DATETIME_NO_ZONE)
>>> NbTime()
<NbTime [2024-02-29 18:14:38]>
5 NbTime 对象内置的成员属性
见下面的交互,NbTime类型对象有非常便捷的各种成员变量,
datetime 类型datetime.datetime类型的时间对象,这个很方便和内置类型关联起来
time_zone_obj 时区
datetime_str 日期时间字符串
time_str 时间字符串
date_str 日期字符串
timestamp 时间戳秒
timestamp_millisecond 时间戳毫秒
today_zero_timestamp 当天凌晨的时间戳
>>> nbt=NbTime()
>>> nbt.datetime
datetime.datetime(2024, 2, 29, 18, 16, 23, 541415, tzinfo=<DstTzInfo 'Asia/Shanghai' CST+8:00:00 STD>)
>>> nbt.time_zone_obj
<DstTzInfo 'Asia/Shanghai' LMT+8:06:00 STD>
>>> nbt.datetime_str
'2024-02-29 18:16:23'
>>> nbt.time_str
'18:16:23'
>>> nbt.date_str
'2024-02-29'
>>> nbt.timestamp
1709201783.541415
>>> nbt.timestamp_millisecond
1709201783541.415
>>> nbt.today_zero_timestamp
1709136000
6 NbTime的方法
get_str_by_specify_formatter 方法转化成任意字符串格式
shift 是计算生成新的NbTime对象,支持无限连续链式操作
求3天1小时10分钟后的时间,入参支持正数和负数
>>> NbTime().shift(hours=1,minutes=10).shift(days=3)
<NbTime [2024-03-03 19:02:49 +0800]>
to_tz 是生成新的时区的NbTime对象,把NbTime对象转化成另一个时区.
一个东7区的时间:
>>> NbTime('2024-02-26 15:58:21',datetime_formatter=NbTime.FORMATTER_DATETIME,time_zone=NbTime.TIMEZONE_EASTERN_7)
<NbTime [2024-02-26 15:58:21 +0700]>
那这个东7区的时间转化成东8区的时间:
>>> NbTime('2024-02-26 15:58:21',datetime_formatter=NbTime.FORMATTER_DATETIME,time_zone=NbTime.TIMEZONE_EASTERN_7).to_tz('UTC+8')
<NbTime [2024-02-26 16:58:21 +0800]>
7 NbTime总结
总结就是 NbTime 的入参接受所有类型,NbTime支持链式调用,Nbtime方便支持时区和转化,所以NbTime操作时间,远远暴击使用datetime和三方arrow包
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
nb_time-0.3.tar.gz
(6.7 kB
view details)
Built Distribution
nb_time-0.3-py3-none-any.whl
(6.7 kB
view details)
File details
Details for the file nb_time-0.3.tar.gz
.
File metadata
- Download URL: nb_time-0.3.tar.gz
- Upload date:
- Size: 6.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.7.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0564bd57ec2db7ecd8c4be605cd4ba26d15e5169bd654645861d9cace25601b8 |
|
MD5 | af7a3262de42b884b1048bd9a178ca45 |
|
BLAKE2b-256 | e0bb0ed72285653d7668d3b4786dcda293deca495c02b5854db9c351d03a612a |
File details
Details for the file nb_time-0.3-py3-none-any.whl
.
File metadata
- Download URL: nb_time-0.3-py3-none-any.whl
- Upload date:
- Size: 6.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.7.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e5a2260ee7838bad6eee34041941c06d462f75df906a00e4941dbe59a19d5429 |
|
MD5 | 5128367640ac745fbc0f2518245cfe40 |
|
BLAKE2b-256 | ca94cd99b884c610e8ff86e507baf25c61fa6348142bae530947cdc6159deb12 |