如何将日期日期转换为英文日期格式?

时间:2016-11-21 06:19:01

标签: java android date date-format simpledateformat

我在我的Android应用程序中使用Locale设置了日期日期(例如21 11月2016)。但是,我想把这个日期发送到" dd-MM-yyyy" (例如,21-11-2016)格式到我的API。

当我尝试这样做时,我得到以下异常:

  

java.lang.IllegalArgumentException:错误类:类java.lang.String

以下是我的代码:

public String convertDate(String date) {
    System.out.println("......ORIGINAL DATE....... " + date); // ......ORIGINAL DATE....... 21 11月 2016
    String myFormat = "dd-MM-yyyy"; //In which you need put here
    SimpleDateFormat sdf = new SimpleDateFormat(myFormat, new Locale(getMyLocale())); //Japanese locale is set but tried english too
    System.out.println("......CONVERTED DATE....... " + sdf.format(date)); //should be 21-11-2016 but getting above error
    return sdf.format(new Date(date));
}

此外,对于美国/英语区域设置,它工作正常,但对于日语我收到此错误。

2 个答案:

答案 0 :(得分:4)

您需要两个格式化程序,如下所示

 function demoController(NgTableParams, simpleList) {
    this.tableParams = new NgTableParams({
      // initial sort order
      sorting: { name: "asc" } 
    }, {
      dataset: simpleList
    });
  }

答案 1 :(得分:1)

java.time

您正在使用java.time类取代的麻烦的旧旧日期时间类。

定义DateTimeFormatter对象以匹配输入字符串的模式,并为日本指定Locale。将输入字符串解析为LocalDate对象。致电LocalDate.parse

定义DateTimeFormatter对象以匹配您想要的输出。致电LocalDate::format以生成您想要的字符串。

已经在StackOverflow中记录了很多次。请搜索以查找示例代码和进一步讨论。

关于java.time

java.time框架内置于Java 8及更高版本中。这些类取代了麻烦的旧legacy日期时间类,例如java.util.DateCalendar和& SimpleDateFormat

现在位于Joda-Timemaintenance mode项目建议迁移到java.time。

要了解详情,请参阅Oracle Tutorial。并搜索Stack Overflow以获取许多示例和解释。规范是JSR 310

从哪里获取java.time类?

ThreeTen-Extra项目使用其他类扩展java.time。该项目是未来可能添加到java.time的试验场。您可以在此处找到一些有用的课程,例如IntervalYearWeekYearQuartermore