1

我创建了一个 Web 服务,它返回最初由 getDate() 函数捕获的事件的日期。我希望解析此函数返回的日期(格式为:2013-05-17 14:52:00.943)并以 DD-MM-YYYY 格式显示给用户。

有什么建议么?我还没有找到任何沿着这个方向的解决方案。

4

3 回答 3

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 的信息可以在这里找到。

于 2013-05-18T04:49:35.577 回答
3

我已经尝试过这段代码,它对我来说很好,请尝试下面的代码:请投票给 Tarun,因为他给出了几乎正确的答案。只是他犯了错误,他通过 cal.getTime() 方法而不是 pDate

字符串格式日期 = 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 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

希望它对你有用。

于 2013-05-18T08:12:46.577 回答
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));

输出:

11-05-2013

编辑:

Calendar cal = Calendar.getInstance();
cal.setTime(specific_date);
int dayOfMonth = cal.get(Calendar.DAY_OF_WEEK);

String dayOfMonthStr = String.valueOf(dayOfMonth);
于 2013-05-18T04:22:57.133 回答