使用一个字符串值 android 以不同格式显示日期时出现问题
issue in display Date in different format with one string value android
朋友们好,我有一个日期字符串值,例如“2015-02-04”,下面是我的代码
Date todaysDate = new java.util.Date("2015-02-07");
SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
SimpleDateFormat df2 = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
SimpleDateFormat df3 = new SimpleDateFormat("dd-MMM-yyyy");
SimpleDateFormat df4 = new SimpleDateFormat("MM dd, yyyy");
SimpleDateFormat df5 = new SimpleDateFormat("E, MMM dd yyyy");
SimpleDateFormat df6 = new SimpleDateFormat("E, MMM dd yyyy HH:mm:ss");
try
{
//format() method Formats a Date into a date/time string.
String testDateString = df.format(todaysDate);
System.out.println("String in dd/MM/yyyy format is: " + testDateString);
String str2 = df2.format(todaysDate);
System.out.println("String in dd-MM-yyyy HH:mm:ss format is: " + str2);
String str3 = df3.format(todaysDate);
System.out.println("String in dd-MMM-yyyy format is: " + str3);
String str4 = df4.format(todaysDate);
System.out.println("String in MM dd, yyyy format is: " + str4);
String str5 = df5.format(todaysDate);
System.out.println("String in E, MMM dd yyyy format is: " + str5);
String str6 = df6.format(todaysDate);
System.out.println("String in E, E, MMM dd yyyy HH:mm:ss format is: " + str6);
}
catch (Exception ex ){
System.out.println(ex);
}
当我 运行 上面的代码时,我给了我
这样的错误
02-05 16:34:28.288: E/AndroidRuntime(27931): Caused by: java.lang.IllegalArgumentException
02-05 16:34:28.288: E/AndroidRuntime(27931): at java.util.Date.parse(Date.java:437)
02-05 16:34:28.288: E/AndroidRuntime(27931): at java.util.Date.<init>(Date.java:149)
02-05 16:34:28.288: E/AndroidRuntime(27931): at com.example.paginationdemo.Demp.onCreate(Demp.java:33)
在行 Date todaysDate = new java.util.Date("2015-02-07");
知道我该如何解决吗?
简单:不要使用 deprecated new Date(String)
构造函数。相反,创建一个具有正确格式的 SimpleDateFormat
,并使用 parse
方法。
DateFormat format = new SimpleDateFormat("yyyy-MM-dd", Locale.US);
format.setTimeZone(TimeZone.getTimeZone("etc/UTC"));
Date date = format.parse("2015-02-07");
始终 查看编译器警告,例如当您使用已弃用的成员时。它们通常因某种原因被弃用!
朋友们好,我有一个日期字符串值,例如“2015-02-04”,下面是我的代码
Date todaysDate = new java.util.Date("2015-02-07");
SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
SimpleDateFormat df2 = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
SimpleDateFormat df3 = new SimpleDateFormat("dd-MMM-yyyy");
SimpleDateFormat df4 = new SimpleDateFormat("MM dd, yyyy");
SimpleDateFormat df5 = new SimpleDateFormat("E, MMM dd yyyy");
SimpleDateFormat df6 = new SimpleDateFormat("E, MMM dd yyyy HH:mm:ss");
try
{
//format() method Formats a Date into a date/time string.
String testDateString = df.format(todaysDate);
System.out.println("String in dd/MM/yyyy format is: " + testDateString);
String str2 = df2.format(todaysDate);
System.out.println("String in dd-MM-yyyy HH:mm:ss format is: " + str2);
String str3 = df3.format(todaysDate);
System.out.println("String in dd-MMM-yyyy format is: " + str3);
String str4 = df4.format(todaysDate);
System.out.println("String in MM dd, yyyy format is: " + str4);
String str5 = df5.format(todaysDate);
System.out.println("String in E, MMM dd yyyy format is: " + str5);
String str6 = df6.format(todaysDate);
System.out.println("String in E, E, MMM dd yyyy HH:mm:ss format is: " + str6);
}
catch (Exception ex ){
System.out.println(ex);
}
当我 运行 上面的代码时,我给了我
这样的错误02-05 16:34:28.288: E/AndroidRuntime(27931): Caused by: java.lang.IllegalArgumentException
02-05 16:34:28.288: E/AndroidRuntime(27931): at java.util.Date.parse(Date.java:437)
02-05 16:34:28.288: E/AndroidRuntime(27931): at java.util.Date.<init>(Date.java:149)
02-05 16:34:28.288: E/AndroidRuntime(27931): at com.example.paginationdemo.Demp.onCreate(Demp.java:33)
在行 Date todaysDate = new java.util.Date("2015-02-07");
知道我该如何解决吗?
简单:不要使用 deprecated new Date(String)
构造函数。相反,创建一个具有正确格式的 SimpleDateFormat
,并使用 parse
方法。
DateFormat format = new SimpleDateFormat("yyyy-MM-dd", Locale.US);
format.setTimeZone(TimeZone.getTimeZone("etc/UTC"));
Date date = format.parse("2015-02-07");
始终 查看编译器警告,例如当您使用已弃用的成员时。它们通常因某种原因被弃用!