Java中的日期格式转换?

时间:2011-10-26 06:47:29

标签: java android

我在JSON Feed中有一个日期,格式如下:

 mm/dd/yyyy  for example today's date  10/26/2011

我想将其转换为另一种格式,实际上是一种详细的日期格式:

 Wed, 26 OCT 2011

我怎么能这样做.. ???我知道这可能很简单,但我仍然是新手,任何帮助都表示赞赏。

4 个答案:

答案 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();
}