格式化日期Java
如何格式化如下所示的字符串 2012年12月8日星期六00:00:00 JST 进入yyyy-mm-dd,即 2012-12-08 通过浏览,我发现了以下代码:格式化日期Java,java,date,datetime,date-format,Java,Date,Datetime,Date Format,如何格式化如下所示的字符串 2012年12月8日星期六00:00:00 JST 进入yyyy-mm-dd,即 2012-12-08 通过浏览,我发现了以下代码: SimpleDateFormat formatter = new SimpleDateFormat("dd-MMM-yyyy"); String dateInString = "Sat Dec 08 00:00:00 JST 2012"; try { Date date = formatter.par
SimpleDateFormat formatter = new SimpleDateFormat("dd-MMM-yyyy");
String dateInString = "Sat Dec 08 00:00:00 JST 2012";
try {
Date date = formatter.parse(dateInString);
System.out.println(date);
System.out.println(formatter.format(date));
} catch (ParseException e) {
e.printStackTrace();
}
但是,我无法修改它以接受第一行(Sat Dec 08 00:00:00 JST 2012)作为字符串并将其格式转换为yyyy mm dd格式
我该怎么办?我应该尝试修改这个吗?还是尝试另一种方法
更新:我正在使用您的答案中的这个(获取错误:无法解析的日期:“Sat Dec 08 00:00:00 JST 2012”)
试试这个-
SimpleDateFormat srcFormatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.JAPANESE);
SimpleDateFormat destFormatter = new SimpleDateFormat("dd-MMM-yyyy", Locale.JAPANESE);
Date date = srcFormatter.parse("Sat Dec 08 00:00:00 JST 2012");
String destDateString = destFormatter.format(date);
将您的格式更改为新的SimpleDataFormat(“yyyy-MM-dd”,Locale.ENGLISH)代码>
谢谢..您需要两个
SimpleDataFormat
对象。一个是使用parse()
方法从字符串解析日期,另一个是使用format()
方法以所需格式输出日期。有关日期格式的更多信息,请检查。第一个字符串使用英语单词,因此您应该为SimpleDataFormat指定区域设置<代码>新SimpleDataFormat(“dd-MMM-yyyy”,Locale.ENGLISH)代码>。不要认为这是可行的,我已经更新了qn,使其更加具体。参见字符串dateInString=“Sat Dec 08 00:00:00 JST 2012”;你实际上有两个问题。1) 您需要2种日期格式(如军阀和Subbrajyotimajumder所述)。2) 如果您不提供区域设置并在默认语言不是英语的jvm上执行代码,它将无法解析单词。我已经更新了代码以包含您和SubhrajyotiMajumder的答案,但我无法让它工作。字符串仍然不可解析+提供区域设置。或者,只有当默认语言为英语时,它才会起作用。@Subhrajyoti Majumder:他希望以这种格式输出2012-12-08
@Subhrajyoti Majumder-字符串仍然无法解析为什么你会按照上面的答案选择英语而不是日语?这对我来说非常有效,这就是为什么!如果你想去日本,那么你可以改变它!!你在哪里使用parse变量?我更新我的答案!我忘记更新变量名了!!现在看一看!
SimpleDateFormat srcFormatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.JAPANESE);
SimpleDateFormat destFormatter = new SimpleDateFormat("dd-MMM-yyyy", Locale.JAPANESE);
Date date = srcFormatter.parse("Sat Dec 08 00:00:00 JST 2012");
String destDateString = destFormatter.format(date);
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
String dateInString = "Wed Oct 16 00:00:00 CEST 2013";
try {
SimpleDateFormat parse = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy", Locale.ENGLISH);
Date date = parse.parse(dateInString);
System.out.println(date);
System.out.println(formatter.format(date));
} catch (ParseException e) {
e.printStackTrace();
}