Java字符串转时间几种常见的方法

 更新时间:2025年07月02日 10:23:43   作者:二九筒  
在Java中字符串转化为日期格式是一个常见的需求,日期格式在处理时间相关的操作时非常重要,这篇文章主要给大家介绍了关于Java字符串转时间几种常见的方法,需要的朋友可以参考下

前言

在Java中,将字符串转换为时间对象有多种方式,主要取决于你使用的Java版本和需要的功能。以下是几种常见的方法:

1. 使用 SimpleDateFormat (Java 8之前)

import java.text.SimpleDateFormat;
import java.util.Date;

public class StringToDate {
    public static void main(String[] args) throws Exception {
        String dateString = "2023-05-15 14:30:00";
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = format.parse(dateString);
        System.out.println(date);
    }
}

2. 使用 DateTimeFormatter 和 LocalDateTime (Java 8+)

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

public class StringToLocalDateTime {
    public static void main(String[] args) {
        String dateString = "2023-05-15 14:30:00";
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        LocalDateTime dateTime = LocalDateTime.parse(dateString, formatter);
        System.out.println(dateTime);
    }
}

3. 其他时间类型转换

a. 转换为 LocalDate (仅日期)

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

String dateString = "2023-05-15";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate date = LocalDate.parse(dateString, formatter);

b. 转换为 LocalTime (仅时间)

import java.time.LocalTime;
import java.time.format.DateTimeFormatter;

String timeString = "14:30:00";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
LocalTime time = LocalTime.parse(timeString, formatter);

4. 处理不同格式

String dateString1 = "15/05/2023";
String dateString2 = "May 15, 2023";
String dateString3 = "20230515";

DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("dd/MM/yyyy");
DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("MMM dd, yyyy");
DateTimeFormatter formatter3 = DateTimeFormatter.BASIC_ISO_DATE;

LocalDate date1 = LocalDate.parse(dateString1, formatter1);
LocalDate date2 = LocalDate.parse(dateString2, formatter2);
LocalDate date3 = LocalDate.parse(dateString3, formatter3);

5. 处理时区 (ZonedDateTime)

import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;

String dateString = "2023-05-15T14:30:00+08:00";
ZonedDateTime zonedDateTime = ZonedDateTime.parse(dateString);
System.out.println(zonedDateTime);

// 或者指定格式
String customDateString = "2023-05-15 14:30:00 Asia/Shanghai";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss VV");
ZonedDateTime zdt = ZonedDateTime.parse(customDateString, formatter);

注意事项

  • 异常处理:记得处理 ParseException (SimpleDateFormat) 或 DateTimeParseException (DateTimeFormatter)

  • 线程安全:SimpleDateFormat 不是线程安全的,而 DateTimeFormatter 是线程安全的

  • Java 8+ 推荐:如果使用 Java 8 或更高版本,推荐使用新的 java.time API (LocalDateTime 等)

  • 模式匹配:确保格式模式与输入字符串完全匹配

总结 

到此这篇关于Java字符串转时间几种常见方法的文章就介绍到这了,更多相关Java字符串转时间内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java IO流读取图片供前台显示代码分享

    java IO流读取图片供前台显示代码分享

    这篇文章主要介绍了java IO流读取图片供前台显示代码分享,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • Java中IP段转CIDR的原理与实现详解

    Java中IP段转CIDR的原理与实现详解

    CIDR表示的是无类别域间路由,通常形式是IP地址后跟一个斜杠和数字,这篇文章主要为大家介绍了如何使用Java实现IP段转CIDR,需要的可以了解下
    2025-03-03
  • java多线程和并发包入门示例

    java多线程和并发包入门示例

    这篇文章主要写了java多线程的使用方法和java并发包简单入门的示例,大家可以参考使用
    2013-11-11
  • 基于@MapperScan和@ComponentScan的使用区别

    基于@MapperScan和@ComponentScan的使用区别

    这篇文章主要介绍了@MapperScan和@ComponentScan的使用区别,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • Spring Boot集成Spring Cloud Eureka进行服务治理的方法

    Spring Boot集成Spring Cloud Eureka进行服务治理的方法

    本文通过详细的步骤和代码示例,介绍了如何在Spring Boot中集成Spring Cloud Eureka进行服务治理,通过这种方式,可以有效地管理和维护微服务架构中的服务,感兴趣的朋友跟随小编一起看看吧
    2024-11-11
  • Java利用过滤器实现完善登录功能

    Java利用过滤器实现完善登录功能

    这篇文章主要为大家详细介绍了Java如何利用过滤器实现完善登录功能,文中的示例代码讲解详细,对我们学习Java有一定帮助,需要的可以参考一下
    2022-09-09
  • 详解SpringBoot中的统一异常处理

    详解SpringBoot中的统一异常处理

    这篇文章主要介绍了详解SpringBoot中的统一异常处理,在独立的某个地方,比如单独一个类,定义一套对各种异常的处理机制,需要的朋友可以参考下
    2023-05-05
  • Java简单计算器的实现

    Java简单计算器的实现

    这篇文章主要为大家详细介绍了Java简单计算器的实现,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-12-12
  • java对象转成byte数组的3种方法

    java对象转成byte数组的3种方法

    这篇文章主要为大家详细介绍了java对象转成byte数组的3种方法,具有一定的参考价值,感兴趣的朋友可以参考一下
    2018-06-06
  • MyEclipse打开文件跳转到notepad打开问题及解决方案

    MyEclipse打开文件跳转到notepad打开问题及解决方案

    windows系统打开README.md文件,每次都需要右键选择notepad打开,感觉很麻烦,然后就把README.md文件打开方式默认选择了notepad,这样每次双击就能打开,感觉很方便,这篇文章主要介绍了MyEclipse打开文件跳转到notepad打开问题,需要的朋友可以参考下
    2024-03-03

最新评论