`
agile_boy
  • 浏览: 558321 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

datetime的时区(time zone)转换

阅读更多
    时区问题真是无处不在在,在Java中,系统提供一些缺省的Locale(其中包含了时区信息),可通过查看Python的datetime官方文档,好像是没有提供缺省,而且其timezone对象还是抽象类,真让人有点郁闷,还好有个开源的实现:pytz。

   问题的出现是这样的,我通过C接口写入到Mongodb的时间,存放是UTC的,这样我通过Mongodb的Python接口出来的数据也是UTC的,而且是Naive的,也就是说通过Mongodb获取的datetime是没有时区信息的。没法子只好转吧,还好python提供了astimezone方法。

   如果直接去调用astimezone方法,系统将抛出这样异常:
引用
astimezone() cannot be applied to a naive datetime

   解决办法也是蛮简单的:
import pytz
....
#dt the datetime var
dt.replace(tzinfo=pytz.utc).astimezone(pytz.timezone('Asia/Shanghai'))
分享到:
评论

相关推荐

    Python datetime 如何处理时区信息

    1. 使用`datetime.today().astimezone(tz)`将当前系统时间转换为指定时区的时间。 2. 使用`datetime.now(tz)`直接获取指定时区的当前时间。 3. 使用`datetime.utcnow()`获取协调世界时间(UTC),这不包含时区信息,...

    UniversalTime与本地时间转换工具

    2. `TimeZoneInfo.ConvertTimeFromUtc(DateTime utcTime, TimeZoneInfo timeZone)`:根据指定的时区将UTC时间转换为该时区的本地时间。 3. `TimeZoneInfo.ConvertTimeToUtc(DateTime localTime, TimeZoneInfo time...

    Python 日期时间对象中的时区

    >>> local_timezone = datetime.now(timezone.utc).astimezone().tzinfo >>> datetime.now(local_timezone).isoformat() '2023-07-19T18:41:02.30460+02:00' ``` 在 Python 中,日期时间对象中的时区处理需要我们...

    php获取当地时间 time zone

    这通常是服务器所在的时区,可以通过`date_default_timezone_set()`函数进行更改。 ```php $default_tz = date_default_timezone_get(); echo "默认时区: " . $default_tz; ``` 2. 设置时区: 如果你需要为特定的...

    Time-Zone-Converter:一个用于在时区之间进行转换的简单库

    在实际应用中,"Time-Zone-Converter"库通常与日期和时间处理相关的其他库(如`datetime`)结合使用,以实现更复杂的功能,比如时间戳转换、日期范围转换等。 需要注意的是,虽然"Time-Zone-Converter"库在许多情况...

    Django时区详解

    - **`make_naive(aware_datetime, timezone)`**: 将一个aware `datetime`对象转换为naive `datetime`对象。 这些工具方法极大地简化了时区管理的过程,使开发者能够更加专注于业务逻辑而不是繁琐的日期和时间处理。...

    c# 获取设置时区SetTimeZoneInformation

    public static extern bool SetTimeZoneInformation(TimeZoneInfo timezone); [StructLayout(LayoutKind.Sequential)] public struct TimeZoneInformation { public Int32 Bias; public byte ...

    Laravel开发-laravel-timezone

    Laravel Timezone组件提供了一种高效且灵活的方式来处理日期、时间和时区的存储与检索。下面将详细介绍Laravel中与时区相关的知识点,以及如何在实际开发中应用。 1. **日期和时间处理基础** Laravel使用Carbon库...

    C语言实现时区转换函数的实例

    时区转换函数的实现是通过在pg_proc.h文件中添加函数定义,并在myfuncs.c文件中实现函数 Datum timezone_convert(PG_FUNCTION_ARGS)来实现的。在函数中,我们首先获取输入参数timestamp、zone1和zone2,然后进行参数...

    基于java时区转换夏令时的问题及解决方法

    在Java中,可以使用SimpleDateFormat和TimeZone类来进行时区转换。例如,可以将当前时间转换为指定时区显示: ```java @Test public void test() throws Exception { Date a = new Date(); SimpleDateFormat sf = ...

    以 Python 的 datetime 模块为例

    10. **tzinfo(时区信息)**:datetime 模块也提供了处理时区的能力,通过结合 `datetime` 和 `timezone` 类,可以处理具有时区信息的日期时间: ```python from datetime import timezone, datetime utc_now = ...

    asp用的mysql时间戳转换方法

    intTimeZone = myssql_timezone ' 从MySQL获取的时区偏移量,默认为8(东八区) Function FromUnixTime(intTime, intTimeZone) If IsEmpty(intTime) Or Not IsNumeric(intTime) Then FromUnixTime = Now() Exit ...

    PyPI 官网下载 | python-datetime2-0.0.1.tar.gz

    其次,`datetime2`库改进了时区(timezone)的支持。它引入了`tzinfo`子类,提供了更加灵活和强大的时区转换和处理功能。在`python-datetime2-0.0.1`中,开发者可能已经实现了与IANA时区数据库的深度集成,使得处理...

    timezone

    压缩包文件"timezone-master"可能包含了一个关于时区的项目或库,比如一个用于处理时区转换的JavaScript库,或者是一份有关时区数据的资源集合。这些资源可能包括时区数据库,例如IANA时区数据库,它包含了全世界的...

    PyTZ - Python Time Zone Library-开源

    3. **本地化和去本地化**:`datetime`对象可以通过`localize()`方法本地化到特定时区,而`astimezone()`方法则可以将本地化的时间转换回UTC或其他时区。 4. **处理历史时区变化**:PyTZ库能够处理历史时区规则的...

    UTC时间转换源码

    例如,在Python中,你可以创建一个函数`utc_to_local(utc_timestamp, timezone_offset)`,其中`timezone_offset`是目标时区相对于UTC的小时数。函数内部可以如下实现: ```python from datetime import datetime, ...

    在python 不同时区之间的差值与转换方法

    `pytz`提供了全世界的时区信息,可以通过`pytz.timezone()`函数创建时区对象,然后使用`astimezone()`方法进行时区转换。 例如,如果需要将一个特定的UTC时间转换为另一个时区,可以这样做: ```python from ...

    rust-timezone-finder:请勿使用此功能

    `chrono`是Rust社区广泛使用的一个时间日期处理库,它提供了`DateTime`, `TimeZone`, `NaiveDate`, `NaiveTime`等类型,以及丰富的API来处理各种时间操作,包括时区转换。`chrono::offset::FixedOffset`允许用户...

    Laravel开发-laravel-gmt-timezones

    此外,`laravel-gmt-timezones` 还允许你在模型中定义一个`timezone`属性,这样在展示和保存数据时,系统会自动根据用户选择的时区进行转换。例如: ```php // app/Models/User.php use Illuminate\Database\...

Global site tag (gtag.js) - Google Analytics