以下代码显示了如何将日期的字符串表示形式转换为java.util.Date对象。
要转换日期字符串,我们可以使用java.text.SimpleDateFormat扩展java.text.DateFormat抽象类的帮助。
package org.nhooo.example.text; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.Date; public class ConvertStringToDateExample { public static void main(String[] args) { String pattern = "dd/MM/yyyy"; String date = "28/01/2018"; try { DateFormat df = new SimpleDateFormat(pattern); Date today = df.parse(date); System.out.println("Today = " + df.format(today)); } catch (ParseException e) { e.printStackTrace(); } // 使用Java 8日期和时间 DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern); LocalDate localDate = LocalDate.parse(date, formatter); System.out.println("Today = " + localDate.format(formatter)); } }
这是我们的代码的结果:
Today = 28/01/2018 Today = 28/01/2018
该示例通过创建一个实例开始SimpleDateFormat与dd/MM/yyyy这意味着日期字符串以日-月-年顺序格式的格式。
最后使用parse(stringsource)方法我们可以得到Date实例。因为parse方法可以抛出java.text.ParseException异常如果提供的日期格式无效,则出现异常;我们需要捕获它。
这是可用于格式化从Java类文档获取日期的已定义模式的列表。
信件 | 日期/时间部分 | 例子 |
---|---|---|
G | Era指示符 | AD |
y | Year | 1996; 96 |
M | 一年中的月份 | July; Jul; 07 |
w | 一年中的星期 | 27 |
W | 月份中的周 | 2 |
D | 一年中的某一天 | 189 |
d | 月的一天 | 10 |
F | 每月的星期几 | 2 |
E | 星期几 | Tuesday; Tue |
a | Am/pm标记 | PM |
H | 一天中的小时数(0-23) | 0 |
k | 一天中的小时数(1-24) | 24 |
K | 上午/下午(0-11)时 | 0 |
h | 上午/下午(1-12)时 | 12 |
m | 每小时分钟 | 30 |
s | 秒 | 55 |
S | 毫秒 | 978 |
z | 时区 | Pacific Standard Time; PST; GMT-08:00 |
Z | 时区 | -0800 |