我正在尝试解析此日期,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 2019"; 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 =尝试此代码"2019-10-14",我将获得肯定的答案。有什么问题?如何解析这种格式?
"2019-10-14"
PS。我从jDatePicker那里得到了这个日期,并且没有关于用户选择日期时如何修改日期格式的说明。
jDatePicker
你不能期望使用设置为其他格式的SimpleDateFormat解析日期。
要解析“ 2009年Thu Jun 18 20:56:02 EDT 2019”日期字符串,你需要这样的SimpleDateFormat(大致):
SimpleDateFormat parser=new SimpleDateFormat("EEE MMM d HH:mm:ss zzz yyyy");
使用此方法将字符串解析为Date,然后使用其他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); ...