首页 > 解决方案 > 哪个最好作为 Android 中的时间戳 [仅使用新的 Java.time]?LocalDateTime 还是 Instant.now()?

问题描述

问题:

我需要在 SQLITE 数据库(Android)中保存时间戳并从中提取日期。哪个是最好的方法LocalDateTimeInstant.now()?因为这个 Android 应用程序正在沙特阿拉伯使用。

要求:

我必须查询 Timestamp 列以获取在 DB 中输入的第一个 Timestamp 并从中单独提取日期以将其与当前日期进行比较,以检查日差是否超过 30 天。

需要帮助:

  1. 最好的两个LocalDateTimeInstant.now()
  2. 如何从最好的方式中单独提取日期。感谢帮助。

到目前为止完成:

我曾经LocalDateTime保存时间戳,但不确定如何仅从中提取日期。

标签: androidsqlitedatetimejava-timelocaldatetime

解决方案


您可以使用它(适用于 Api 26+):

String ts = String.valueOf(Instant.now().getEpochSecond());

支持较旧的 Android 版本:

String ts = String.valueOf(TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis()));

或者,如果您希望它采用特定的日期格式,请使用:

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String millisInString  = dateFormat.format(new Date());

推荐阅读