`
阅读更多
public class ParseUtcDateTimeStringTest {

     @Test
     public void testUtcStringToDate() {
        // "Z" at the end of the date time string is for UTC
        String utcDateStr = "2017-08-28T02:03:41.080Z";
        System.out.println("====== testUtcStringToDate: " + utcDateStr);

        // Parse the utc datetime string to java.time.Instant - defaults formatter to DateTimeFormatter.ISO_INSTANT.
        Instant instant = Instant.parse(utcDateStr);
        System.out.println("Parsed instant in UTC: " + instant);

        // single quote around 'T'
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS");

        // convert to LocalDateTime with default time zone
        ZoneId defaultZone = ZoneOffset.systemDefault();
        System.out.println("defaultZone: " + defaultZone);
        LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, ZoneId.of(defaultZone.getId()));
        System.out.println("Converted localDateTime=" + localDateTime);

        // convert to ZonedDateTime - you cannot format an Instant, have to convert it to a formattable date time
        ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(instant, ZoneId.of(defaultZone.getId()));
        System.out.println("Formatted zonedDateTime=" + formatter.format(zonedDateTime));

        // get ZoneOffset and then ZoneRules
        ZoneOffset zoneOffset = zonedDateTime.getOffset();
        System.out.println("zoneOffset: " + zonedDateTime.getOffset());
        ZoneRules zoneRules = ZoneRules.of(zoneOffset);
        System.out.println("zoneRuels: " + zoneRules);

        // ZoneRules tells if it's daylight savings time...
        if (zoneRules.isDaylightSavings(instant)) {
            System.out.println("Auckland summer has daylight saving time, which is 13 hours ahead of UTC");
            Assert.assertEquals("2017-08-28T15:03:41.080", formatter.format(zonedDateTime));
        } else {
            System.out.println("Auckland has winter time 12 hours ahead of UTC");
            Assert.assertEquals("2017-08-28T14:03:41.080", formatter.format(zonedDateTime));
        }
    }
}
分享到:
评论

相关推荐

    java8Test.zip

    5. **日期和时间API**:Java 8对日期和时间处理进行了全面的改进,提供了新的java.time包。比如LocalDate、LocalTime、LocalDateTime和ZonedDateTime等类,使日期和时间的处理更加方便。"Test"文件可能展示了如何...

    Java8Date&Time.zip

    这个"Java8Date&Time.zip"压缩包包含了一些与Java 8日期和时间API相关的代码示例和练习,让我们逐一解析其中的核心知识点。 首先,`DateTimeAPI.java`很可能展示了Java 8中的`java.time`包,这是日期和时间处理的...

    日历调整、时间调整、时间预测、以及Java.util包和Java.test包的简单运用,其中包含10个源代码文件,只需导入eclipse中即可编译、运行。

    虽然`Date`类在Java 8之后被`java.time`包中的新API取代,但它仍然是许多老代码库的一部分。你可以使用`Date`类的构造函数创建日期对象,或者用`System.currentTimeMillis()`获取当前时间。`Date`类的一些方法如`...

    java test jars

    总结起来,"java test jars"这个主题涵盖了Java开发中的核心测试工具,包括单元测试框架JUnit及其扩展,时间处理库Joda-Time,日志库Log4j,以及Java标准库的某些部分。这些工具的使用能够提高代码质量,降低缺陷率...

    Time:包含Java类Time1和Time1Test

    4. **java.time包** (Java 8 及以上): 从Java 8开始,引入了全新的日期和时间API,这大大改进了对日期和时间的操作。其中,`LocalDateTime`、`LocalDate`、`LocalTime`、`ZonedDateTime`等类提供了更加直观、线程...

    纯JAVA计算日期的农历节日、公历节日代码!

    - 自Java 8开始,引入了`java.time`包,包含`LocalDate`, `LocalTime`, `LocalDateTime`等新类,提供了更直观、易用的API。 2. **农历转换**: - Java标准库并未直接提供农历的支持,因此我们需要依赖第三方库,...

    Java8FeatureTest

    5. **日期和时间API**:Java 8改进了日期和时间处理,引入了新的java.time包,包含诸如LocalDate、LocalTime、LocalDateTime和ZonedDateTime等类,提供了更加直观和易于使用的API,取代了以前的Calendar和Date。...

    java8-spring5部分技术与工具介绍

    4. **日期和时间 API(java.time)**:取代了过时的 java.util.Date 和 Calendar 类,提供了更易用且功能丰富的日期和时间处理。 5. **默认方法**:在接口中添加默认实现,使得接口可以扩展而不会破坏现有实现。 6...

    5_8.rar_Java 8

    5. **日期和时间API**:Java 8对日期和时间处理进行了彻底的改革,引入了`java.time`包,包含了`LocalDate`, `LocalTime`, `LocalDateTime`, `ZonedDateTime`等类,提供了更加友好和强大的日期时间操作功能。...

    java8的10大特性

    - Java 8引入了全新的日期和时间API,包括`java.time`包,提供了更易用和强大的日期、时间、时区管理功能,替代了过时的`java.util.Date`和`Calendar`。 5. **方法引用和构造器引用** - 方法引用允许直接引用已有...

    java常用api

    - `@Test(timeout=...)`:限制测试用例的执行时间。 4. **JavaScript**:JavaScript是一种广泛应用于网页和Web应用的脚本语言,常常用于实现动态效果和与用户交互。JavaScript特效可能涵盖: - DOM操作:通过...

    javatest.zip_Java 单元测试

    7. **超时测试**:可以使用`@Test(timeout =毫秒数)`注解来设置测试方法的执行时间限制。如果超过指定时间,测试将被视为失败。 8. **测试套件**:多个测试类可以组织成一个测试套件,以便一起运行。使用`@Suite`...

    Java8新特性教程(含代码).docx

    - Java 8 引入了新的日期和时间 API (`java.time` 包),包括 `LocalDate`, `LocalTime`, `LocalDateTime` 等类,提供了更强大的日期时间处理能力。 **重复注解与类型注解:** - Java 8 还引入了重复注解和类型注解...

    java8集合源码-Java8:Java8

    api(java.time) Lambda 表达式 默认方法 流 可选的 路口类型 Javascript Base64 编码和解码 字符串连接器 类型注释 JDBC 改进 暖身 创建目录 mkdir java8 转到java8目录并应用gradle init命令创建java项目 gradle ...

    java-test.zip_java笔试题_java面试题_site:www.pudn.com

    10. **Java 8及更高版本新特性**:了解Lambda表达式,Stream API,Optional类,日期时间API(java.time包),接口默认方法,方法引用等。 此外,面试通常还会涉及实际项目经验、问题解决能力、系统设计能力等软性...

    java计算两个日期相隔的天数

    `java.time.LocalDate`是Java 8引入的新API,它提供了更加友好和强大的日期操作功能。 1. 使用`java.util.Date`计算日期差: 如果你的代码还需要兼容Java 8之前的版本,可以使用`java.util.Date`和`java.util....

    java日期对象练习

    - Java 8引入了`java.time`包,包含了如`LocalDate`、`LocalTime`、`LocalDateTime`、`ZonedDateTime`等类,提供了更加丰富和友好的API。 - `LocalDate`表示没有时区的日期,如`LocalDate today = LocalDate.now()...

    Java邮件开发Fundamentals of the JavaMail API

    Fundamentals of the JavaMail API Presented by developerWorks, your source for great tutorials ibm.com/developerWorks Table of Contents If you're viewing this document online, you can click ...

    java8源码-java8:java8笔记和代码示例

    java8 源码 java8 java8 note and code example java8新特性 Stream Api Lambda 表达式 行为参数化 接口中的默认方法 Date Time Api Optional 类 Stream 和 Collection的区别 Stream 描述对数据的计算 Collection ...

Global site tag (gtag.js) - Google Analytics