我试图通过使用下面提到的代码将下面提到的日期转换为yyyMMdd。
String dateString = "1st August 2012";
SimpleDateFormat simp_date=new SimpleDateFormat("yyyyMMdd");
try
{
dateString=simp_date.format(new Date(dateString));
}
catch(Exception e)
{
e.printStackTrace();
}
我正处于失败之中。
抛出:IllegalArgumentException
有人可以帮帮我吗?提前谢谢。
答案 0 :(得分:3)
首先,您不应该使用构造函数Date(String)
,因为它已被弃用。这里需要的是首先使用格式解析日期字符串以将其转换为Date
对象,然后将Date
对象格式化为所需格式。
以下代码可行:
String dateString = "1st August 2012";
// Format for parsing the dateString
SimpleDateFormat parser = new SimpleDateFormat("d'st' MMM yyyy");
// To format the resultant Date object to new String format
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");
try {
dateString = formatter.format(parser.parse(dateString));
} catch(Exception e) {
e.printStackTrace();
}
System.out.println(dateString);
我建议你转向JodaTime,这是一个比Java Date
和Calendar
强大的DateTime API。你会惊讶地发现使用日期是多么容易。实际上,Java 8仅引入了基于JodaTime的全新datetime API。
答案 1 :(得分:1)
试试这个好友
java.util.Date ss1=new Date("Sat Dec 01 00:00:00 GMT 2012");
SimpleDateFormat formatter5=new SimpleDateFormat("yyyy-MM-dd");
String formats1 = formatter5.format(ss1);
System.out.println(formats1);
答案 2 :(得分:0)
使用此代码
String date = DateFormat.getDateTimeInstance(2, 2, Locale.US).format(new Date());
输出将于2013年11月15日下午2:06:00
答案 3 :(得分:0)
我没有测试,但我很少修改 ROHIT的代码:
您可以测试以下代码吗? PLS ...
public static void main(String[] args) {
String[] s1 = {"st", "nd", "rd", "th"};
String dateString = "1st August 2012";
for (Object obj : s1) {
SimpleDateFormat parser = new SimpleDateFormat("d'" + obj + "' MMM yyyy");
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");
try {
dateString = formatter.format(parser.parse(dateString));
} catch (Exception e) {
e.printStackTrace();
}
}
System.out.println("Expected OutPut:::" + dateString);
}