字符串日期+时间对象Java

时间:2018-04-23 07:59:02

标签: java date time simpledateformat

我正在尝试将//username is the name attribute of a textfield in your form res.session.user = req.body.username; 转换为string "8/2/2018 04:25 AM",但似乎是将其转换为错误,因为当我执行此操作时输出完全错误的date objectdate time。注意 - 我不关心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)}

如果有人能引导我朝着正确的方向前进,我们非常感激。

1 个答案:

答案 0 :(得分:1)

ArrayList

打印:

  

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

我正在使用并推荐 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()); ,即现代Java日期和时间API。您使用的java.time类已经过时了,Date也是如此,而且也是出了名的麻烦。如果可以,请避免使用。 SimpleDateFormat可以更好地使用。并提供没有时区的java.time类,以保证防范时区问题。也就是说,您可能希望将您的日期时间转换为您选择的时区中的LocalXx,以使其成为一个明确的时间点。

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

是的,ZonedDateTime适用于较旧和较新的Android设备。它只需要至少Java 6

  • 在Java 8及更高版本和更新的Android设备上(来自API级别26,我被告知)现代API内置。
  • 在Java 6和7中获取ThreeTen Backport,新类的后端端口(适用于JSR 310的ThreeTen;请参阅底部的链接)。
  • On(较旧)Android使用Android版的ThreeTen Backport。它被称为ThreeTenABP。并确保使用子包从java.time导入日期和时间类。

链接