java使用SimpleDataFormat转换数据格式
我需要将日期格式转换为新的日期格式。我想像这样展示2016年6月28日,但不管我过了多少个月,它都展示了1月。请查查我失踪的地方
public class DateClass {
public static void main(String[] args)
{
final String OLD_FORMAT = "yyyy-mm-dd";
final String NEW_FORMAT = "MMMM dd,yyyy";
String oldDateString = "2016-06-28";
String newDateString;
SimpleDateFormat sdf = new SimpleDateFormat(OLD_FORMAT);
Date d;
try {
d = sdf.parse(oldDateString);
sdf.applyPattern(NEW_FORMAT);
newDateString = sdf.format(d);
System.out.println(""+newDateString);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
# 1 楼答案
您在
OLD_FORMAT
中使用了mm
,它代表分钟。您希望有MM
,它代表月份因此,您的
OLD_FORMAT
应该是yyyy-MM-dd
在您的情况下,分钟设置为
0
,因此月份为一月# 2 楼答案
你的
OLD_FORMAT
错了,应该是"yyyy-MM-dd"
。在这里,小的m
应该被大写的M
替换,因为小的m
表示分钟,而M
表示月份,在使用OLD_FORMAT
进行解析时,日期被错误地解析# 3 楼答案
换这个
到
# 4 楼答案
在java中,mm表示小步舞曲,mm表示月份,因此您必须将代码更改为月份