首页 > 编程语言 >Java代码实现带时区时间字符串转为LocalDateTime对象

Java代码实现带时区时间字符串转为LocalDateTime对象

时间:2023-06-06 21:31:53浏览次数:56  
标签:Java String 带时区 DateTimeFormatter LocalDateTime 字符串 import public

不带时区时间字符串

可以使用Java 8中的DateTimeFormatter类来将字符串转换为LocalDateTime对象。下面是一个示例代码:

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class DateTimeConversionExample {
    public static void main(String[] args) {
        String timeString = "2023-05-18T10:59:40";
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss");
        LocalDateTime dateTime = LocalDateTime.parse(timeString, formatter);
        System.out.println(dateTime);
    }
}

在上面的代码中,我们首先定义了一个时间字符串,然后创建了一个DateTimeFormatter对象,该对象定义了时间字符串的格式。接下来,我们使用parse方法将时间字符串转换为LocalDateTime对象,并将其打印到控制台上。

请注意,DateTimeFormatter对象中的时间格式必须与时间字符串的格式完全匹配,否则将会抛出DateTimeParseException异常。

带时区时间字符串

如果要实现带时区时间字符串转为LocalDateTime对象:

import java.time.LocalDateTime;
import java.time.OffsetDateTime;
import java.time.format.DateTimeFormatter;

public class TimeZoneDateTimeConverter {
    
    public static void main(String[] args) {
        String dateTimeStr = "2023-04-20T20:15:10.000+08:00";
        LocalDateTime localDateTime = convertTimeZoneStringToLocalDateTime(dateTimeStr);
        System.out.println(localDateTime);
    }

    public static LocalDateTime convertTimeZoneStringToLocalDateTime(String timeZoneDateTimeStr) {
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
        OffsetDateTime offsetDateTime = OffsetDateTime.parse(timeZoneDateTimeStr, formatter);
        return offsetDateTime.toLocalDateTime();
    }
}

这里我们使用了OffsetDateTime类,它可以认识和处理带时区的时间。我们同时定义了一个日期格式化对象,以确保我们可以解析时区时间字符串,这个格式化对象需要的格式是:"yyyy-MM-dd'T'HH:mm:ss.SSSXXX"

使用本代码示例的Java版本需要在8及以上。


文章知识点与官方知识档案匹配,可进一步学习相关知识

标签:Java,String,带时区,DateTimeFormatter,LocalDateTime,字符串,import,public
From: https://blog.51cto.com/u_15786919/6428149

相关文章

  • JavaScript复制内容到剪切板
     复制内容到剪切板分两种情况,一种是从页面已有的可选元素中选中内容进行复制,一种是将Javascript代码中的字符串直接复制到剪切板。复制页面元素选中内容       html代码:     <inputtype="textarea"id="txt"/>     <buttononclick="copy()">复制</button>......
  • java代码格式化和静态分析检查
    java代码格式化和静态分析检查引言:在Java软件开发过程中,开发团队往往要花费大量的时间和精力发现并修改代码缺陷。Java静态代码分析(staticcodeanalysis)工具能够在代码构建过程中帮助开发人员快速、有效的定位代码缺陷并及时纠正这些问题,从而极大地提高软件可靠性并节省软件开......
  • Java类加载机制
    <1>Javac原理javac是用于将源码文件.java编译成对应的字节码文件.class。其步骤是:源码——>词法分析器组件(生成token流)——>语法分析器组件(语法树)——>语义分析器组件(注解语法树)——>代码生成器组件(字节码)<2>类加载过程先在方法区找class信息,有的话直接调用,没有的话则使用类加......
  • java8函数式编程
    1.什么是函数式编程每个人对函数式编程的理解不尽相同。但其核心是:在思考问题时,使用不可变值和函数,函数对一个值进行处理,映射成另一个值。2.Lambda表达式Stream<String>stream=Stream.of("张三","李四");2.1collect(toList())List<String>names=stream.collect(Colle......
  • HttpURLConnection调用webservice,c#、java、python等HTTP调用webservice,简单的webserv
    以前调用webservice一般使用axis、axis2先生成java类后,直接引用,多方便。但是有的webservice接口非常的函数,生成的java类非常多,有没有一种非常简化的方法。axis2有不生成类直接调用的方法,但是QName不容易找,每次查N久不到。有的反馈,使用CXF调用一样方便,但CXF还要使用maven下载jar,而......
  • Java中输入字符串的方法
     Scannerinput=newscanner();Stringcode=input.next();错误写法://Stringcode=input.toString(); 1、输入字符串遇到空格或者换行结束Scannersc=newScanner(System.in);Stringstr=newString();str=sc.next();2、输入一行字符串,可以包括空格Scannersc=ne......
  • 第一章 JavaEE应用和开发环境
    1.1javaEE应用概述1、javaEE的分层模型数据库--【提供持久化服务】--》DomainObject层--【封装】--〉DAO层--【提供数据访问服务】--》业务逻辑层--【提供业务逻辑实现】--〉MVC的控制器层--【显示】--》前端优点:松耦合2、JavaEE应用的组件1)前端组件:主要负责收集用户......
  • 记录--你真的能区分JavaScript的各种导入导出方式吗?
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助前言......
  • Java8 时间日期库的使用方法
    1、Java8新的时间日期库的20个使用示例http://ifeve.com/20-examples-of-date-and-time-api-from-java8/2、Java8日期/时间(DateTime)API指南http://www.importnew.com/14140.html3、JAVA8:健壮、易用的时间/日期APIhttp://www.importnew.com/14857.html......
  • Java8 Lambda 表达式的使用
    1、Java8教程汇总https://wizardforcel.gitbooks.io/java8-tutorials/content/2、Java8lambda表达式10个示例http://www.importnew.com/16436.html3、深入浅出Java8Lambda表达式http://blog.oneapm.com/apm-tech/226.html......