以下代码显示了如何将日期的字符串表示形式转换为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 |