我正在尝试解析此日期,SimpleDateFormat但它不起作用:
SimpleDateFormat
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class Formaterclass { public static void main(String[] args) throws ParseException{ String strDate = "Thu Jun 18 20:56:02 EDT 2009"; SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); Date dateStr = formatter.parse(strDate); String formattedDate = formatter.format(dateStr); System.out.println("yyyy-MM-dd date is ==>"+formattedDate); Date date1 = formatter.parse(formattedDate); formatter = new SimpleDateFormat("dd-MMM-yyyy"); formattedDate = formatter.format(date1); System.out.println("dd-MMM-yyyy date is ==>"+formattedDate); } }
如果我用 strDate= 尝试这段代码"2008-10-14",我有一个肯定的答案。有什么问题?如何解析这种格式?
"2008-10-14"
PS。我从 a 得到了这个日期,jDatePicker并且没有关于如何修改用户选择日期时得到的日期格式的说明。
jDatePicker
您不能期望使用设置为不同格式的 SimpleDateFormat 来解析日期。
要解析您的“Thu Jun 18 20:56:02 EDT 2009”日期字符串,您需要这样的 SimpleDateFormat(大致):
SimpleDateFormat parser=new SimpleDateFormat("EEE MMM d HH:mm:ss zzz yyyy");
使用它将字符串解析为日期,然后您的其他 SimpleDateFormat 将该日期转换为您想要的格式。
String input = "Thu Jun 18 20:56:02 EDT 2009"; SimpleDateFormat parser = new SimpleDateFormat("EEE MMM d HH:mm:ss zzz yyyy"); Date date = parser.parse(input); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); String formattedDate = formatter.format(date); ...
JavaDoc:http ://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html