我正在尝试将字符串“ 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年
您需要使用格式化程序"MM/dd/yy"
parse和write使用格式化程序"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)
请注意,B
与A
并非相反,因此单个格式化程序不能同时执行这两项。