use*_*208 10 java datetime java-8
我正在尝试使用java 8将字符串转换为某种格式的日期.以下是我的代码.即使在将格式模式提到MM/dd/yyyy后,我收到的输出也是yyyy/DD/MM格式.有人能指出我做错了什么吗?
String str = "01/01/2015";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy");
LocalDate dateTime = LocalDate.parse(str, formatter);
System.out.println(dateTime);
Run Code Online (Sandbox Code Playgroud)
那是因为您正在使用toString方法,该方法声明:
输出将采用ISO-8601格式uuuu-MM-dd.
将DateTimeFormatter你传送到LocalDate.parse只是用来创建LocalDate,但它不是"附加"到创建的实例.你需要使用这样的LocalDate.format方法:
String str = "01/01/2015";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy");
LocalDate dateTime = LocalDate.parse(str, formatter);
System.out.println(dateTime.format(formatter)); // not using toString
Run Code Online (Sandbox Code Playgroud)
您可以使用SimpleDateFormat类来实现此目的。使用您想要作为参数的日期格式初始化SimpleDateFormat对象。
String dateInString = "27/02/2016"
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
Date date = formatter.parse(dateInString);
Run Code Online (Sandbox Code Playgroud)
LocalDate 是一个日期对象。它不是 String 对象,因此它显示日期输出字符串的格式将取决于 toString 实现。
您已将其正确转换为 LocalDate 对象,但如果您想以特定字符串格式显示日期对象,则需要相应地设置其格式:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy");
System.out.println(dateTime.format(formatter))
Run Code Online (Sandbox Code Playgroud)
这样您就可以通过提供格式化程序将日期转换为您想要的任何字符串格式。
| 归档时间: |
|
| 查看次数: |
50255 次 |
| 最近记录: |