java将字符串转换为日期的格式不正确
我正在尝试将字符串“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年
# 1 楼答案
你需要用格式化程序
"MM/dd/yy"
解析,用格式化程序"MM/dd/yyyy"
写这是因为格式化程序只是塑造基础日期的表示形式。因此,如果您想读取一种格式,并写入另一种格式,则需要使用一个格式化程序,通过将所需格式的字符串转换为日期对象(没有固有格式),将该日期传递给一个不同的格式化程序,该格式化程序将其格式化为您想要写入的格式
因此,您将执行以下操作:
请注意
B
不是A
的反面,因此单个格式化程序不能同时执行这两个操作