将字符串解析为 Date . 然后可以从 Date 使用不同的模式创建字符串。目前,根据您向我们展示的代码,您似乎正在尝试使用 SimpleDateFormat 期待模式“d-mmm”,这显然是不符合的。你应该有这样的东西:
SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss",
Locale.US);
// TODO: Set the time zone appropriately
Date date = inputFormat.parse(inputText);
SimpleDateFormat outputFormat = new SimpleDateFormat("d MMM", targetLocale);
// TODO: Set the time zone appropriately
String outputText = outputFormat.format(date);
String s = "2012-08-22 11:55:38";
DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date dt = fmt.parse(s);
DateFormat output = new SimpleDateFormat("d 'of' MMMM", Locale.US);
System.out.println(output.format(dt)); //prints 22 of August
4条答案
按热度按时间ac1kyiln1#
如果我答对了您的问题,您可以尝试将第一个字符串解析为日期,然后将结果日期格式化为秒字符串。如果这是真的,请参见下面的代码:
p8ekf7hl2#
从输入字符串解析日期时出现问题。
“2012-08-22 11:55:38”采用“yyyy-mm-dd hh:mm:ss”格式,您应首先使用该格式从输入字符串解析日期。
一旦你有了
Date
对象,则可以按所需格式设置日期的格式。gdx19jrr3#
将字符串解析为
Date
. 然后可以从Date
使用不同的模式创建字符串。目前,根据您向我们展示的代码,您似乎正在尝试使用SimpleDateFormat
期待模式“d-mmm”,这显然是不符合的。你应该有这样的东西:请注意,如果您在java中进行大量的日期/时间工作,您应该研究joda time,它是一个更好的日期/时间api。
ars1skjm4#
这应该有效(如果我理解你的要求):