首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

dotnet 任意时区的 DateTimeOffset 转换为中国时区时间文本

本文告诉大家在拿到任意时区的 DateTimeOffset 对象, DateTimeOffset 转换为使用中国的 +8 时区表示的时间 在开始之前,需要说明的是,采用 DateTimeOffset...会比 DateTime 更优的一个点是 DateTimeOffset 是带上时区的,这就意味着方便的在多个不同的时区进行传递和序列化的时候,不会丢失原来的信息 现在也推荐更多的使用 DateTimeOffset...类型而不是 DateTime 类型,除非是明确只有本机时间且后续没有需求变更才会考虑使用 DateTime 类型 可选的转换为任意国家地区的时区时间,可以是先通过 TimeZoneInfo 的 FindSystemTimeZoneById...,通过以下代码即可将任意时区时间换为中国对应的时区时间 TimeZoneInfo?...在有一些奇怪的系统上,会抛出 TimeZoneNotFoundException 异常,此时可以使用固定中国的 +8 小时作为对比 UTC 时间 此时需要先将传入的 DateTimeOffset 转换为

1.5K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Java时间处理神器之Joda-Time

    时区(Time zone) 我针对 Joda 依次讨论每一个概念。...任何严格的时间计算都必须涉及时区(或相对于 GMT),除非在同一个时区内发生了相对时间计算(即时这样时区也很重要,如果事件对于位于另一个时区的各方存在利益关系的话)。...使用另一个对象(例如,java.util.Date,或者是另一个 Joda 对象)。 我将在第一个类中介绍这些构造函数: DateTime。...用于处理这种时间片段的两个有用类分别为 LocalDate 和 LocalTime: LocalDate:该类封装了一个年/月/日的组合。当地理位置(即时区)变得不重要时,使用它存储日期非常方便。...这是 Joda 设计者进行了改进的另一个特性。

    2.2K50

    Java日期及时间库插件 -- Joda Time.

    查看源码可以知道, DateTime.parse就是输入的时间换为后面的格式, 转换的结果为: ?...Joda-time支持的时间跨度有三个,分别如下: Interval :根据开始、结束时间表示一个特定的时间跨度。...我喜欢局部时间片段看作一个重复周期中的一点,这样的话,如果我正在考虑的日期构建可以以一种有意义的方式出现多次(即重复的),那么它就是一个局部时间。...受 Joda 支持的年表的例子包括:ISO(默认)、Coptic、Julian、Islamic等。 时区 时区是值一个相对于英国格林威治的地理位置,用于计算时间。...任何严格的时间计算都必须涉及时区(或相对于 GMT),除非在同一个时区内发生了相对时间计算(即时这样时区也很重要,如果事件对于位于另一个时区的各方存在利益关系的话)。

    2.4K110

    Java 项目还需要 joda

    而且经常混乱还容易出错,相信大家应该都用过救民于水火的 joda Datetime 对象吧,简直是活菩萨。 时间来到 JDK 8 以后的版本了,我们还需要使用 joda 吗?...上面的原文就是 Joda 已经不再积极进行开发了,只是进行一些时区数据的维护了。 所有的功能你应该都可以使用 java.time 来实现了。...简单来说就是如果你使用的是 JDK 8 以后的版本,你可以慢慢 Joda 从你的项目中移除了,如果你还使用的是早期的版本,那么你还是需要导入的。...除非你重新 new 一个使用 ZonedDateTime 创建一个对象和 Date 创建一个对象是一样的,都是获得当前时区时间。...Date 和 ZonedDateTime 创建的时间为带有时区的本地计算机的时间。 Date 和 ZonedDateTime 都可以转换为 Instant,不需要添加时区偏移量。

    63000

    放弃 Calender优雅地使用Joda-Time吧Joda 大型项目Joda 简介Joda 和 JDK 互操作性Joda 的关键日期时间概念

    时区(Time zone) 我针对 Joda 依次讨论每一个概念。...任何严格的时间计算都必须涉及时区(或相对于 GMT),除非在同一个时区内发生了相对时间计算(即时这样时区也很重要,如果事件对于位于另一个时区的各方存在利益关系的话)。...使用另一个对象(例如,java.util.Date,或者是另一个 Joda 对象)。 我将在第一个类中介绍这些构造函数:DateTime。...用于处理这种时间片段的两个有用类分别为 LocalDate 和 LocalTime: LocalDate:该类封装了一个年/月/日的组合。当地理位置(即时区)变得不重要时,使用它存储日期非常方便。...这是 Joda 设计者进行了改进的另一个特性。

    1.5K70

    java8的日期API总结(JSR310)

    JSR-310规范提供一个新的和改进的Java日期与时间API,该规范领导者Stephen Colebourne就是joda-time作者,因此很多环节很像joda-time。...日期时间API日期和时间分开为LocalDate和LocalTime; 既有日期又有时间,则使用 LocalDateTime; 改善了jdk的TimeZone,使用更优雅的ZoneId; 增加了 Instant...Instant 和 LocalDateTime Instant 和 LocalDateTime的区别在于,前者是时间线上的一个绝对时刻,而LocalDateTime是Instant在不同时区一个时间表示...from: 静态工厂转换方法,从另一个时间取值创建对象。 until: 计算时间差 get*:获取某些东西的值。 is*:检查某些东西的是否是true。...to*:转换到另一个类型。 at*:把这个对象与另一个对象组合起来,例如:instant.atZone(zoneId)。

    97720

    使用Joda-Time优雅的处理日期时间

    比如,在Joda-Time中常用的Interval(用来表示一对DateTime),在JSR 310中并不支持。因此,另一个名叫Threeten的第三方库用来弥补Java 8的不足。...Instant比较适合用来表示一个事件发生的时间戳。不用去关心它使用的日历系统或者是所在的时区。 DateTime的主要目的是替换JDK中的Calendar类,用来处理那些时区信息比较重要的场景。...DateTime(long instant):这个构造方法创建出来的实例,是通过一个long类型的时间戳,它表示这个时间戳距1970-01-01T00:00:00Z的毫秒数。使用默认的时区。...日历系统和时区 Joda-Time默认使用的是ISO的日历系统,而ISO的日历系统是世界上公历的事实标准。然而,值得注意的是,ISO日历系统在表示1583年之前的历史时间是不精确的。...Joda-Time默认使用的是JDK的时区设置。如果需要的话,这个默认值是可以被覆盖的。

    1.6K20

    (32) 剖析日期和时间 计算机程序的思维逻辑

    日期和时间一个比较复杂的概念,Java API中对它的支持不是特别好,有一个第三方的类库反而特别受欢迎,这个类库是Joda-Time,Java 1.8受Joda-Time影响,重新设计了日期和时间API...这个整数表示的是一个时刻,与时区无关,世界上各个地方都是同一个时刻,但各个地区对这个时刻的解读,如年月日时分秒,可能是不一样的。 如何表示1970年以前的时间呢?使用负数。...转换为字符串,parse字符串转换为Date。...Date的字符串表示与TimeZone和Locale都是相关的,除此之外,还与两个格式化风格有关,一个是日期的格式化风格,另一个时间的格式化风格。...解决这个问题大概有以下方案: 每次使用DateFormat都新建一个对象 使用线程同步 使用ThreadLocal 使用Joda-Time,Joda-Time是线程安全的 后续文章我们再介绍线程同步和ThreadLocal

    2K100

    (95) Java 8的日期和时间API 计算机程序的思维逻辑

    ,由于它的设计有一些不足,业界广泛使用的是一个第三方的类库Joda-Time,关于Joda-time,我们在33节进行了介绍。...时刻:所有计算机系统内部都用一个整数表示时刻,这个整数是距离格林尼治标准时间1970年1月1日0时0分0秒的毫秒数,可以理解时刻就是绝对时间,它与时区无关,不同时区对同一时刻的解读,即年月日时分秒是不一样的...,使用不同时区解读,日历信息是不同的,Instant有方法根据时区返回一个ZonedDateTime: public ZonedDateTime atZone(ZoneId zone) 默认时区是ZoneId.systemDefault...比如,LocalDateTime按默认时区换为Date,代码可以为: public static Date toDate(LocalDateTime ldt){ return new Date...(ldt.atZone(ZoneId.systemDefault()) .toInstant().toEpochMilli()); } ZonedDateTime转换为Calendar

    1.8K80

    Java8 Date Time API

    简介 Java8 带来了全新的处理日期和时间的方式。几乎所有人都有使用Java Date API痛苦的经历。因此有很多人切换到了Joda Time,但是Java8现在有了媲美Joda时间API。...保存的是UNIX时间戳的秒数,同时有另一个字段保存纳秒。 java.time.LocalDate: 保存日期时间中的日期,用年-月-日表示。不包含时区,是不可变类。...java.time.ZoneDateTime: 保存LocalDateTIme,使用ZoneOffset保存时区信息。可以访问ZoneRule来转换本地时间。...LocalDateTime转换成其他时区时间 System.out.println(localDateTime.atZone(ZoneId.of("America/New_York"))); //...通过解析字符串创建LocalDateTime LocalDateTime parsedLocalDateTime = LocalDateTime.parse("2014-01-01T11:00"); 创建另一个时区

    1.1K20

    JDK8这样处理日期,效率绝对提升,逼格必然翻倍!

    (并且也借鉴了第三方日期库joda很多的优点) 在java8中,java.time包下主要包含下面几个主要的类: Instant:时间戳 Duration:持续时间时间差 LocalDate:...:时间段 ZoneOffset:时区偏移量,比如:+8:00 ZonedDateTime:带时区时间 Clock:时钟,比如获取目前美国纽约的时间 以及java.time.format...在java8中,可以使用MonthDay,该类不包含年份信息,当然还有一个类是YearMonth LocalDate birthday = LocalDate.of(1990, 10, 12); MonthDay...java8中,日期,时间时区都很好的进行了分离。...,我们可以直接时间换为标准的时间格式: String specifyDate = "20151011"; DateTimeFormatter formatter = DateTimeFormatter.BASIC_ISO_DATE

    3.1K40

    Java 8 Time Api 使用指南-珍藏限量版

    ZonedDate和Time - 在旧的时间api中开发人员必须编写额外的逻辑来处理旧API的时区逻辑,而使用新的API,可以使用 Local和ZonedDate / Time API来处理时区。...正如他们的名字所示,它们代表与上下文相结合的本地日期/时间。 这些类主要用于不需要在上下文中明确指定时区的情况。作为本节的一部分,我们介绍最常用的API。 3.1。...鉴于上面的LocalDateTime实例,下面的代码示例返回2月份的月份: localDateTime.getMonth(); 4.使用ZonedDateTime API 当我们需要处理时区特定的日期和时间时...(finalTime, initialTime); 现在我们来看看如何旧的Date 和Calendar 转换为新的Date和Time。...Joda-Time类库 Java 8 日期和时间库的另一种替代方案是Joda-Time库。

    1.3K32

    编写Java代码时应该避免的6个坑

    这样做的原因是,在第 3 行中,运行时必须将 sum 变量转换为原始 int(自动拆箱),并且在执行添加后,结果包装在一个新的 Integer 类中(自动装箱)。...它本质上是 LocalDateTime,但强制使用 UTC 时区。在应用程序中需要处理时区时,最好在所有服务和数据库中使用一个时区。...当使用 Instant 时,一切都变成了 UTC,然后读者可以根据需要将其转换为不同的时区。...(或任何与 java.util 相关的日期) 不要使用 joda.time(因为它与 java.time 非常相似) 如果只对某个区域的日期感兴趣,请使用 LocalDate 如果对某个区域的日期和时间感兴趣...,请使用 LocalDateTime 如果需要日期时间并且不想处理时区,请使用 Instant

    42391

    编写Java代码时应该避免的6个坑

    这样做的原因是,在第 3 行中,运行时必须将 sum 变量转换为原始 int(自动拆箱),并且在执行添加后,结果包装在一个新的 Integer 类中(自动装箱)。...我们列出 java.time 中使用的三个最重要的类 LocalDate 表示特定时区的日期(不包括一天中的时间)。...它本质上是 LocalDateTime,但强制使用 UTC 时区。在应用程序中需要处理时区时,最好在所有服务和数据库中使用一个时区。...当使用 Instant 时,一切都变成了 UTC,然后读者可以根据需要将其转换为不同的时区。...(或任何与 java.util 相关的日期) 不要使用 joda.time(因为它与 java.time 非常相似) 如果只对某个区域的日期感兴趣,请使用 LocalDate 如果对某个区域的日期和时间感兴趣

    17020

    Joda Time项目和java8时间api

    DateFormat不是线程安全的,二个线程同时使用formatter解析日期,你可能会得到无法预期的结果。 在jdk1.8之前,这些问题使得用户们使用了第三方日期和时间库,比如Joda Time。...如果我们工作中的jdk版本是1.8版本之前可以使用Joda Time项目,Joda项目中其实包括的不止Joda Time,还包括Joda-Money ,Joda-Beans,Joda-Convert ,...没有时区概念,比如utc时间 为2010-12-1T11:22:33.567Z,如果是表示时区概念一般2010-12-1T11:22:33.567+08:00 关于Joda Time其他的日期和时间api...LocalDateTime 一个没有时区概念的日期-时间类在ISO-8601 日期系统中,比如2007-12-03T10:15:30 ?...总结 java8提供的日期-时间对象是不可变的。操作的结果总是返回一个新的实列,老的日期时间对象不会发生改变。所以提供的这些类都很简单,但是需要我们多去使用它。

    99220

    Java 8 中处理日期和时间示例

    同时java.util.Date中既包含了日期,又包含了时间,所以java8新的日期和时间库,很好的解决了以前日期和时间类的很多弊端。并且也借鉴了第三方日期库joda很多的优点。...ZonedDateTime:带时区时间 Clock:时钟,比如获取目前美国纽约的时间 以及java.time.format包中的 DateTimeFormatter:时间格式化 下面我们通过例子来看如何使用...在java8中,可以使用MonthDay,该类不包含年份信息,当然还有一个类是YearMonth LocalDate birthday = LocalDate.of(1990, 10, 12); MonthDay...java8中,日期,时间时区都很好的进行了分离。...,我们可以直接时间换为标准的时间格式: String specifyDate = "20151011"; DateTimeFormatter formatter = DateTimeFormatter.BASIC_ISO_DATE

    1.5K20

    【Java8新特性】06 新的日期和时间:LocalDate LocalTime LocalDateTime

    比如要表示2019年6月18日,创建一个Date实例: Date date = new Date(119, 5, 18); Date类已经不推荐使用了。...由于Date和Calendar推出的时间很接近,造成程序员对使用哪个类感到困惑。 还有一个很大的问题,Date和Calendar都是可变的类,这种设计会导致程序出现各种问题。...Date和Calendar的种种问题导致程序员们纷纷抛弃原生的jdk日期时间库,投第三方组件如Joda-Time,Java设计者似乎意识到这个问题,在借鉴Joda-Time的基础上终于在Java8版本中加入了新的日期时间包...System.out.println(dateTime.format(DateTimeFormatter.ISO_DATE_TIME)); // output: 2019-07-23T23:09:19.31 (4)时区使用方法...java8之前使用java.util.TimeZone类处理时区,java8新增ZoneId替代TimeZone。

    1.2K20
    领券