如何以2008-06-02 00:00:00.0
等格式获取字符串并将其转换为:02-Jun-2008
?
我可以以某种方式获取原始字符串,将其转换为Date对象,然后使用格式化程序获取最终输出(而不是自己解析字符串)?谢谢!
答案 0 :(得分:7)
您可以使用SimpleDateFormat
根据模式在String
和Date
对象之间进行转换,反之亦然。单击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个实例。一个用于将输入字符串转换为日期,另一个用于将日期转换回字符串,但采用其他格式。
答案 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')