我在JSON Feed中有一个日期,格式如下:
mm/dd/yyyy for example today's date 10/26/2011
我想将其转换为另一种格式,实际上是一种详细的日期格式:
Wed, 26 OCT 2011
我怎么能这样做.. ???我知道这可能很简单,但我仍然是新手,任何帮助都表示赞赏。
答案 0 :(得分:2)
以下是我在Android应用程序中完成此操作的示例。
public String GetJustTime(String input){
SimpleDateFormat curFormater = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss");
Date dateObj = new Date();
try {
dateObj = curFormater.parse(input);
} catch (ParseException e) {}
SimpleDateFormat postFormater = new SimpleDateFormat("h:mm a");
String newDateStr = postFormater.format(dateObj);
return newDateStr;
}
只需根据需要更改2格式字符串即可。 第一个用于传入格式,第二个用于输出格式。
我相信你想要的输出格式是“EEE,d MMM YYYY”,但我现在无法测试它。
答案 1 :(得分:2)
这不是很有教育意义,但这是准备处理您的请求的解决方案:
String dateString = "10/26/2011";
String dateStringParsed = "";
SimpleDateFormat format1 = new SimpleDateFormat("MM/dd/yyyy");
SimpleDateFormat format2 = new SimpleDateFormat("EEE, dd MMM yyyy");
try {
Date parsed = format1.parse(dateString);
dateStringParsed = format2.format(parsed);
}
catch(ParseException pe) {
//handle the exception
}
AFAIK,单月的资本不能通过SimpleDateFormat获得。如果有必要,你将不得不手动更改它。
答案 2 :(得分:2)
除了使用SimpleDateFormat的解决方案之外,只想添加一个使用Joda的DateTimeFormatter(org.joda.time.format.DateTimeFormatter
)的替代解决方案,如果你最终做了一些最先进的事情,它通常被认为是一个更好的日期/时间API在代码中包含日期或时间。实际上,这个解决方案可以全部内联到一行,但为了清楚起见,这里显示了细分:
String source = "10/26/2011";
String target = "Wed, 26 Oct 2011";
DateTimeFormatter sourceFormatter = DateTimeFormat.forPattern("MM/dd/yyyy");
DateTimeFormatter targetFormatter = DateTimeFormat.forPattern("E, dd MMM yyyy");
assertEquals(target, sourceFormatter.parseDateTime(source).toString(targetFormatter));
答案 3 :(得分:1)
您可以查看SimpleDateFormat课程。一个关于如何使用它的小例子,取自here:
String dateString = new String("07/12/2005");
java.util.Date dtDate = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yy");
SimpleDateFormat sdfAct = new SimpleDateFormat("dd/mm/yyyy");
try
{
dtDate = sdfAct.parse(dateString);
System.out.println("Date After parsing in required format:"+(sdf.format(dtDate)));
}
catch (ParseException e)
{
System.out.println("Unable to parse the date string");
e.printStackTrace();
}