你好我有这种格式的日期2013-10-31T19:00:00Z
现在我想把这个日期显示为yyyy/mm/dd
这个格式。我已经使用过这段代码但是它给了我一个异常帮助我
String startDateString = "2013-10-31T19:00:00Z";
DateFormat df = new SimpleDateFormat("yyyy/mm/dd");
Date startDate;
try {
startDate = df.parse(startDateString);
String newDateString = df.format(startDate);
System.out.println("Date is "+newDateString);
} catch (ParseException e) {
e.printStackTrace();
}
答案 0 :(得分:2)
您可以使用SimpleDateFormat的parse
方法来解析日期,然后使用format
方法以您喜欢的格式输出它。
试试这个:
String startDateString = "2013-10-31T19:00:00Z";
DateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss'Z'");
DateFormat outputFormat = new SimpleDateFormat("yyyy/MM/dd");
Date date = inputFormat.parse(startDateString);
System.out.println("Date is " + outputFormat.format(date));
输出:
Date is 2013/10/31
答案 1 :(得分:2)
那是因为你特意告诉Java寻找一个4位数的年份,然后是2位数的月份和2位数的日期。直接从文档中获取,你想要的是
"yyyy-MM-dd'T'HH:mm:ssZ"
答案 2 :(得分:2)
试试这个
String DateStr="2013-10-31T19:00:00Z";
SimpleDateFormat sim=new SimpleDateFormat("yyyy-MM-dd");
Date d = new SimpleDateFormat("yyyy-MM-dd").parse(DateStr);
System.out.println(sim.format(d));
输出 2013-10-31
答案 3 :(得分:1)
您需要单独的SimpleDateFormat
来解析Datestring。试试这个:
String startDateString = "2013-10-31T19:00:00Z";
DateFormat originalFormat = new SimpleDateFormat("yyyy-mm-dd'T'HH:MM:SS'Z'");
DateFormat df = new SimpleDateFormat("yyyy/mm/dd");
Date startDate;
try {
startDate = originalFormat.parse(startDateString);
String newDateString = df.format(startDate);
System.out.println("Date is " + newDateString);
} catch (ParseException e) {
e.printStackTrace();
}
答案 4 :(得分:1)
您需要两个不同的DateFormat
。一个用于解析日期,另一个用于格式化日期。
String startDateString = "2013-10-31T19:00:00Z";
DateFormat df = new SimpleDateFormat("yyyy/mm/dd");
DateFormat df1 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:SS'Z'");
Date startDate;
try {
startDate =df1.parse(startDateString);
String newDateString = df.format(startDate);
System.out.println("Date is "+newDateString);
} catch (ParseException e) {
e.printStackTrace();
}
答案 5 :(得分:1)
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
String dateInString = "07/06/2013";
try {
Date date = formatter.parse(dateInString);
System.out.println(date);
System.out.println(formatter.format(date));
} catch (ParseException e) {
e.printStackTrace();
}
这是一个简单的例子
答案 6 :(得分:0)
试试这个:
try {
String startDateString = "2013-10-31T19:00:00Z";
DateFormat input = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss'Z'");
DateFormat output = new SimpleDateFormat("yyyy/MM/dd");
Date date = input.parse(startDateString);
System.out.println("Date is " + output.format(date));
} catch (ParseException e) {
e.printStackTrace();
}
指出代码中的另一个简单错误
您编码为DateFormat df = new SimpleDateFormat("yyyy/mm/dd");
此处mm
适用于minutes
,month
使用MM