Java中的日期转换

时间:2010-04-22 16:00:49

标签: java string date

如何以2008-06-02 00:00:00.0等格式获取字符串并将其转换为:02-Jun-2008

我可以以某种方式获取原始字符串,将其转换为Date对象,然后使用格式化程序获取最终输出(而不是自己解析字符串)?谢谢!

4 个答案:

答案 0 :(得分:7)

您可以使用SimpleDateFormat根据模式在StringDate对象之间进行转换,反之亦然。单击API链接,您将看到详细说明的模式。 4位数年份可以用yyyy表示,3个字位的月份缩写可以用MMM表示,依此类推。

首先,您需要将第一种格式的String解析为<{1}}对象:

Date

然后您需要格式化 SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); Date date = sdf1.parse(inputString); 成第二种格式的Date

String

请注意,您还需要考虑SimpleDateFormat sdf2 = new SimpleDateFormat("dd-MMM-yyyy", Locale.ENGLISH); String outputString = sdf2.format(date); 以使用英语打印月份,否则它将使用平台的默认语言环境来翻译月份。

答案 1 :(得分:0)

使用SimpleDateFormat类的2个实例。一个用于将输入字符串转换为日期,另一个用于将日期转换回字符串,但采用其他格式。

这是example of using SimpleDateFormat

答案 2 :(得分:0)

DateFormat startFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S");
DateFormat endFormat = new SimpleDateFormat("dd-MM-yyyy");
String outputString = null;
try {
    Date date = startFormat.parse(inputString);
    outputString = endFormat.format(date);
 } catch(ParseException pe) {
     throw new IllegalArgumentException(inputString + " is not properly formated.", pe);
 }

答案 3 :(得分:0)

你绝对可以像其他人推荐的那样使用SimpleDateFormat类。

另一个建议是否适用于您的情况。如果从sql查询中获取此数据,还可以使用to_char()方法在查询本身中对其进行格式化。例如:to_char(column_name,'DD-MON-YYYY')