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