gpt4 book ai didi

java - 字符串日期 + 日期对象 Java 的时间

转载 作者:行者123 更新时间:2023-12-02 11:20:15 25 4
gpt4 key购买 nike

我正在尝试转换 string "8/2/2018 04:25 AM"进入date object但它似乎转换错误,使其输出完全错误的 datetime当我做date.toString()时。注意 - 我不关心 date.toString()格式,我只需要它具有相同的日期和时间

这是我的代码,

String timestampString = dateText.getText().toString() + " " + timeText.getText().toString();
try {
Date timestamp2 = new SimpleDateFormat("dd/MM/yyyy hh:mm a").parse(timestampString);
Log.d("TIME", timestamp2.toString());

} catch (ParseException e) {Log.d("TAG", e)}

这是输出:

D/TIME: Wed Feb 07 23:25:00 EST 2018

如果有人能引导我走向正确的方向,我将不胜感激。

最佳答案

    DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("d/M/uuuu");
DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern("hh:mm a", Locale.ENGLISH);
LocalDate date = LocalDate.parse(dateText.getText(), dateFormatter);
LocalTime time = LocalTime.parse(timeText.getText(), timeFormatter);
LocalDateTime dateTime = date.atTime(time);
Log.d("TIME", dateTime.toString());

打印:

D/TIME: 2018-02-08T04:25

我正在使用并推荐 java.time,现代 Java 日期和时间 API。您使用的 Date 类早已过时,SimpleDateFormat 也太麻烦了。如果可以的话,避免这些。 java.time 使用起来要好得多。并提供没有时区的 LocalXx 类,这保证可以防止时区问题。也就是说,您可能希望将日期时间转换为您选择的时区中的 ZonedDateTime,以使其成为明确的时间点。

问题:我可以在 Android 上使用 java.time 吗?

是的,java.time 在旧版和新版 Android 设备上都能很好地工作。它只需要至少 Java 6

  • 在 Java 8 及更高版本以及较新的 Android 设备(据我所知,从 API 级别 26 开始)中,现代 API 是内置的。
  • 在 Java 6 和 7 中获取 ThreeTen Backport,即新类的向后移植(ThreeTen for JSR 310;请参阅底部的链接)。
  • 在(较旧的)Android 上使用 ThreeTen Backport 的 Android 版本。它被称为 ThreeTenABP。并确保使用子包从 org. Threeten.bp 导入日期和时间类。

链接

关于java - 字符串日期 + 日期对象 Java 的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49976058/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com