将字符串转换为日期格式不正确的年份格式[重复]

问题描述 投票:0回答:1

我正在尝试将字符串“ 05/09/20”转换为显示全年的日期格式。

这似乎很简单,但是SimpleDateFormat返回的年份是“ 0020”

这里是示例代码

import java.text.SimpleDateFormat;  
import java.util.Date;  
public class StringToDateExample1 {  
public static void main(String[] args)throws Exception {  
  SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy");
  String dateInString="05/09/20";
  Date date =  formatter.parse(dateInString);
  System.out.println(formatter.format(date));
}  
} 

有人知道为什么会这样吗?

注意:如果我将简单的日期格式设置为MM / dd / yy,则表示年份是2020年

java simpledateformat
1个回答
0
投票

您需要使用格式化程序"MM/dd/yy" parsewrite使用格式化程序"MM/dd/yyyy"

这是因为格式化程序只是简单地塑造表示形式基础日期。因此,如果您想读取一种格式,然后编写另一种格式,则需要使用一种格式化程序,通过将其期望的格式的字符串转换为日期对象(没有固有格式)来读取日期,然后将该日期传递给different格式化程序,该格式化程序会将其调整为您要写入的格式。

因此,您将执行以下操作:

"05/09/20" (string of a certain format) 
-A-> 
{May Ninth 2020} (date, no specific format, it's just an object) 
-B-> 
"05/09/2020" (date expressed as a string in a different format)

请注意,BA并非相反,因此单个格式化程序不能同时执行这两项。

© www.soinside.com 2019 - 2024. All rights reserved.