我创建了一个 Web 服务,它返回事件的日期,该事件最初由 getDate() 函数捕获。我希望解析此函数返回的日期(格式如下:2013-05-17 14:52:00.943)并以 DD-MM-YYYY 格式显示给用户。
有什么建议吗?我还没有找到沿着这个方向的任何解决方案。
最佳答案
我已经尝试过这段代码,它对我来说工作正常,请尝试下面的代码:也请给 Tarun 投票,因为他给出了几乎正确的答案。只是他犯了错误,他传递了 cal.getTime() 方法而不是 pDate
String formatDate = p.format(pDate);
第二个错误的格式是“DD-MM-YYYY”,但实际格式是:
"dd-MM-yyyy" not "DD-MM-YYYY"
我已经在里面做了改动,修改了。
String dateStr = "2013-05-16 14:52:00.943";
SimpleDateFormat c = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.S"); // your web service format
Date pDate = c.parse(dateStr);
SimpleDateFormat p = new SimpleDateFormat("dd-MM-yyyy"); // your required format
String formatDate = p.format(pDate); // convert it in your required format
SimpleDateFormat formatter = new SimpleDateFormat("EEEE"); // Day format as you want EEE for like "Sat" and EEEE for like "Saturday"
String Day = formatter.format(pDate); // This will give you a day as your selected format
System.out.println("Date & Day>>>"+formatDate+" "+Day);
//对于 GMT 格式,你的格式应该是这样的:“2013-05-16 14:52:00.943 GMT+05:30”
// Give it to me in GMT time.
c.setTimeZone(TimeZone.getTimeZone("GMT+05:30"));
System.out.println("GMT time: " + c.format(pDate));
输出:
Date & Day>>>16-05-2013 Thursday
GMT time: 2013-05-16 02:52:00.943 Greenwich Mean Time
乔达时间:
你可以从here:下载joda time 2.0 jar文件
DateTimeFormatter jodaFormatter = ISODateTimeFormat.dateTime();
DateTime jodaParsed = jodaFormatter
.parseDateTime("2013-05-17T16:27:34.9+05:30");
Date date2 = jodaParsed.toDate();
System.out.println("Date & Day:" + jodaParsed.getDayOfMonth() + "-" + jodaParsed.getMonthOfYear() + "-" + jodaParsed.getYear() + " " + jodaParsed.getHourOfDay() + ":" + jodaParsed.getMinuteOfHour()+" "+jodaParsed.dayOfWeek().getAsText());
输出:
Date & Day:17-5-2013 16:27 Friday
希望它对你有用。
关于java - 如何在 java 中解析 getDate() 返回的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16620628/