我将通过以下格式从RSS Feed收到日期
10月23日星期五11:07:08 IST 2015我想把它转换成
yyyy-MM-dd HH:mm
格式。
我试过这种方式
public class ConvertDate {
public static void main(String args[]) throws ParseException
{
String passedate = "Fri Oct 23 11:07:08 IST 2015";
String res= convertdate(passedate);
System.out.println(res);
}
public static String convertdate(String recivieddate) throws ParseException {
SimpleDateFormat in = new SimpleDateFormat("EEEEE MMMMM yyyy HH:mm:ss.SSSZ");
Date date = in.parse(recivieddate);
SimpleDateFormat out = new SimpleDateFormat("yyyy-MM-dd HH:mm");
String newdate = out.format(date);
return newdate;
}
}
但我得到了
Exception in thread "main" java.text.ParseException: Unparseable date: "Fri Oct 23 11:07:08 IST 2015"
at java.text.DateFormat.parse(Unknown Source)
at ConvertDate.convertdate(ConvertDate.java:20)
at ConvertDate.main(ConvertDate.java:12)
请你们知道如何解决这个问题
答案 0 :(得分:1)
日期模式与输入不匹配。尝试更改行
SimpleDateFormat in = new SimpleDateFormat("EEEEE MMMMM yyyy HH:mm:ss.SSSZ");
到
SimpleDateFormat in = new SimpleDateFormat("E MMM dd HH:mm:ss z yyyy");
希望有所帮助
答案 1 :(得分:0)
您的日期格式为EEE MMM dd HH:mm:ss zzz yyyy
,英文为local。
这会正确解析日期:
new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH)
.parse("Fri Oct 23 11:07:08 IST 2015");
答案 2 :(得分:0)
试试这个:
SimpleDateFormat in = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy");
in.setTimeZone(TimeZone.getTimeZone("Asia/Calcutta")); //or Asia/Jerusalem
String s2 = "Fri Oct 23 11:07:08 IST 2015";
Date date = in.parse(s2);
SimpleDateFormat out = new SimpleDateFormat("yyyy-MM-dd HH:mm");
out.setTimeZone(TimeZone.getTimeZone("Asia/Calcutta"));
System.out.println(out.format(date));
输出:
2015-10-23 11:07 另请注意
setTimeZone
。 IST可以代表印度ST或以色列ST,所以如果你指定你真正想要的时区会更好。
检查here IST
歧义。
答案 3 :(得分:0)
首先检查您的实际工作日期。.就我而言
String day =“ date:10/01/2018”;(硒需要从网页上获取它,因此我从页面上获取了上述字符串)
SimpleDateFormat df=new SimpleDateFormat("MM/dd/yyyy");
Date ndate = df.parse(day);
Calendar cal = Calendar.getInstance();
cal.setTime(ndate);
cal.add(Calendar.DATE, 1);
Date DDueDate1= cal.getTime();
day =df.format(DDueDate1);
在进行此操作时,出现无法解析的错误。...
因此,日期字符串包含一些字符。因此,只需使用 day.split(“:”); 字符串day1 = day [1];从字符串中删除这些字符。 只需在parse()中将此day1字符串给现在更新的代码如下所示。
SimpleDateFormat df=new SimpleDateFormat("MM/dd/yyyy");
Date ndate = df.parse(day1);
Calendar cal = Calendar.getInstance();
cal.setTime(ndate);
cal.add(Calendar.DATE, 1);
Date DDueDate1= cal.getTime();
day =df.format(DDueDate1);