当前位置: 代码网 > it编程>编程语言>Java > Java字符串转时间几种常见的方法

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

2025年07月02日 Java 我要评论
前言在java中,将字符串转换为时间对象有多种方式,主要取决于你使用的java版本和需要的功能。以下是几种常见的方法:1. 使用 simpledateformat (java 8之前)import j

前言

在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字符串转时间内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com