【问题标题】:issue in display Date in different format with one string value android以不同格式显示日期与一个字符串值android的问题
【发布时间】:2015-02-05 11:08:20
【问题描述】:

你好朋友,我有一个日期字符串值,例如“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)

日期 todaysDate = new java.util.Date("2015-02-07");

知道怎么解决吗?

【问题讨论】:

  • 请注意,由于它是您发布的代码的第一行失败,其余部分毫无意义 - 包含一种或两种格式以显示您的目标可能是有意义的,但是您不需要6个...

标签: java android date date-format simpledateformat


【解决方案1】:

简单:不要使用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");

总是查看编译器警告,例如当您使用不推荐使用的成员时。它们通常被弃用是有原因的!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-15
    • 1970-01-01
    • 2020-11-07
    • 1970-01-01
    • 2017-12-07
    • 1970-01-01
    • 2013-08-21
    • 1970-01-01
    相关资源
    最近更新 更多