我创建了一个Web服务,它返回最初由getDate()函数捕获的事件的日期。我想要这个函数返回的日期(这种格式:2013-05-17 14:52:00.943)将被解析并以DD-MM-YYYY格式显示给用户。
有什么建议吗?我还没有找到任何解决方案。
答案 0 :(得分:3)
String dateStr = "2013-05-17 14:52:00.943";
SimpleDateFormat c = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.S");
Date pDate = c.parse(dateStr);
SimpleDateFormat p = new SimpleDateFormat("dd-MM-yyyy");
String formatDate = p.format(pDate);
如果你有时间偏移的冒号,你可以使用Joda Time。
DateTimeFormatter jodaFormatter = ISODateTimeFormat.dateTime();
DateTime jodaParsed = jodaFormatter.parseDateTime("2013-05-17T16:27:34.9+05:30");
Date date = jodaParsed.toDate();
Calendar c = Calendar.getInstance();
c.setTime(date);
c.get(Calendar.DATE));
有关joda的更多信息,请访问here。
答案 1 :(得分:3)
我已经尝试过这段代码而且对我来说工作正常,请尝试下面的代码:请向Tarun投票,因为他给了几乎正确的答案。他确实错了,他通过了cal.getTime()方法而不是pDate < / p>
String formatDate = p.format(pDate);
和“DD-MM-YYYY”等格式的第二个错误,但实际格式是:
“dd-MM-yyyy”不是“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
Joda时间:
您可以从here:
下载joda时间的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
希望它对你有用。
答案 2 :(得分:2)
使用SimpleDateFormat解析日期,然后使用所需格式的SimpleDateFormat打印出来。
示例:
SimpleDateFormat format1 = new SimpleDateFormat("MM/dd/yyyy");
SimpleDateFormat format2 = new SimpleDateFormat("dd-MM-yyyy");
Date date = format1.parse("05/18/2013");
System.out.println(format2.format(date));
输出:
2013年11月5日
编辑:
Calendar cal = Calendar.getInstance();
cal.setTime(specific_date);
int dayOfMonth = cal.get(Calendar.DAY_OF_WEEK);
String dayOfMonthStr = String.valueOf(dayOfMonth);