【问题标题】:How to transfer this kind of DateFormat "2020-05-29T11:40:55Z" to Date [duplicate]如何将这种 DateFormat "2020-05-29T11:40:55Z" 转移到 Date [重复]
【发布时间】:2020-06-04 08:22:49
【问题描述】:

我想把这个“2020-05-29T11:40:55Z”转给Date或者Calender,如果我直接转,比如Date("2020-05-29T11:40:55Z"),会报错。有人有想法吗? 更重要的是,我的最小Android Api 是 19,因此禁止大量用于 Java 8 和 Api26 的 api。

【问题讨论】:

  • 请使用 joda time APIThis 问题会有所帮助。
  • 先转换成其他标准格式再转...
  • @chrylis-cautiouslyoptimistic- 它还没有过时。它在 java 1.8 time package 上迁移。请阅读引用here.,如果某些内容已过时,即java.util.Date
  • 如果可以,请避免使用DateCalendarSimpleDateFormat。请改用java.time 包中的OffsetDateTime。然后就像OffsetDateTime.parse("2020-05-29T11:40:55Z") 一样简单。
  • 如果您的目标 Android API 级别低于 26,您可以使用 ThreeTen Android Backport。更多详情here.

标签: java android kotlin


【解决方案1】:

我不太明白你问题的最后一部分。你是说你不能在你的项目中使用 java 8 吗? .对于基于 java 8 的,请使用 ZonedDateTime 之类的:

//1 - default pattern
String timeStamp = "2019-03-27T10:15:30";
ZonedDateTime localTimeObj = ZonedDateTime.parse(time);

//2 - specified pattern
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss a z");
String timeStamp1 = "2019-03-27 10:15:30 AM";
ZonedDateTime localTimeObj1 = ZonedDateTime.parse(timeStamp1, formatter);

//To get LocalDate from ZonedDateTime
LocalDate localDate = localTimeObj1.toLocalDate();

使用旧方法获取日期:

    String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss a";
    SimpleDateFormat formatter = new SimpleDateFormat(DATE_FORMAT);

    TimeZone tzInAmerica = TimeZone.getTimeZone("America/New_York");
    formatter.setTimeZone(tzInAmerica);

    String sDateInAmerica = formatter.format("2019-03-27 10:15:30 AM"); 
    //Create another simpledateformatter with your required format and use it to convert
    SimpleDateFormat formatter2 = new SimpleDateFormat(REQUIRED_DATE_FORMAT);
    Date date = formatter2.parse(sDateInAmerica);

【讨论】:

  • 不,我正在使用Kotlin 来开发我的android 项目。并且很多 java 8 Api 不支持低 Android Sdk 版本
  • @Cyrus On 在这种情况下,您将不得不使用旧 api 遵循旧方法。
  • 是的,有什么方法可以使用旧的api来传输吗?
  • @Cyrus我对 kotlin 不太擅长,但我已经用 java 更新了代码。
猜你喜欢
  • 1970-01-01
  • 2020-10-08
  • 1970-01-01
  • 2021-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-30
  • 2021-04-09
相关资源
最近更新 更多