繁体   English   中英

Java中的日期格式转换?

[英]Date Format Conversion in Java?

我有以下格式的JSON供稿中有一个日期:

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

我想将其转换为另一种格式,即将详细的日期格式设置为:

 Wed, 26 OCT 2011

我怎样才能做到这一点..??? 我知道这可能很简单,但是仍然是新手,我们将不胜感激。

这是一个示例,其中我在我的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”,但是我现在无法对其进行测试。

这不是很有教育意义,但是这里准备解决您的请求的解决方案:

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使用月份中的大写字母。 如果需要,您将不得不手动更改它。

除了使用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));

您可以看一下SimpleDateFormat类。 有关如何使用此功能的一个小示例,取自此处

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM