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实现三种等级的扫雷游戏(完整版)

    使用Java实现三种等级的扫雷游戏(完整版)

    扫雷是一款大众类的益智小游戏,根据点击格子出现的数字找出所有非雷格子,同时避免踩雷,踩到一个雷即全盘皆输,下面这篇文章主要给大家介绍了关于使用Java实现三种等级的扫雷游戏的相关资料,需要的朋友可以参考下
    2023-01-01
  • 详解Jvm中时区设置方式

    详解Jvm中时区设置方式

    这篇文章主要介绍了详解Jvm中时区设置方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • java实现请求缓冲合并的示例代码

    java实现请求缓冲合并的示例代码

    我们对外提供了一个rest接口给第三方业务进行调用,但是由于第三方框架限制,导致会发送大量相似无效请求,这篇文章主要介绍了java实现请求缓冲合并,需要的朋友可以参考下
    2024-04-04
  • java使用itext如何直接生成pdf

    java使用itext如何直接生成pdf

    在工作中,制作PDF文件是常见需求,尤其是需要插入动态数据或图像时,使用PDF模板填充表单域通常足够,但对于复杂文件,可以通过拼接PDF内容来灵活排版,iText库提供了丰富的PDF操作功能,如设置页面大小、边距、字体、生成动态表格、添加水印、设置密码等
    2024-09-09
  • SpringBoot进行多表查询功能的实现

    SpringBoot进行多表查询功能的实现

    这篇文章主要介绍了SpringBoot进行多表查询功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • Java微信分享接口开发详解

    Java微信分享接口开发详解

    这篇文章主要为大家详细介绍了Java微信分享接口开发的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-04-04
  • 如何实现Java监听器详解

    如何实现Java监听器详解

    今天带大家了解Java监听器是如何实现的及实现原理是什么,文中有非常详细的说明,对正在学习的小伙伴们很有帮助,需要的朋友可以参考下
    2021-06-06
  • Java如何判断一个IP是否在给定的网段内

    Java如何判断一个IP是否在给定的网段内

    这篇文章主要介绍了Java如何判断一个IP是否在给定的网段内问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • 解决MultipartFile.transferTo(dest) 报FileNotFoundExcep的问题

    解决MultipartFile.transferTo(dest) 报FileNotFoundExcep的问题

    这篇文章主要介绍了解决MultipartFile.transferTo(dest) 报FileNotFoundExcep的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • nacos如何修改默认的用户名密码

    nacos如何修改默认的用户名密码

    这篇文章主要介绍了nacos如何修改默认的用户名密码问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01

最新评论