【问题标题】:How to get only date type without time?如何仅获取没有时间的日期类型?
【发布时间】:2019-05-10 03:15:26
【问题描述】:

我想在 Room 数据库中使用 Date 类型作为 Id,这样做的主要原因是能够检查这个日期是否是今天。任何建议表示赞赏

@Entity
data class DailyCount(@PrimaryKey
                  var date:DateTime,// JodaTime
                  var summ: MutableLiveData<Double>? = MutableLiveData())

我想这样查询:

@Query("update DailyCount set summ = :sum where date = :dailyCount") //update if date is today
fun apdateCash(dailyCount: DateTime, sum: Double)

【问题讨论】:

标签: android jodatime android-jodatime


【解决方案1】:

只需使用 SimpleDateFormatter

String jsonDateStr = "03-09-2019 05:45:10"
SimpleDateFormat fmt = new SimpleDateFormat("MM-dd-yyyy");

try {
    return fmt.parse(jsonDateStr);
} catch(ParseException pe) {
    return //generate different unique ID like GUID random maybe;    
}

现在,如果您首先有一个日期对象,并且需要将其归零,您可以这样做:

Date dateObject = Date("03-09-2019 05:45:10") //pseudo for visual
SimpleDateFormat fmt = new SimpleDateFormat("MM-dd-yyyy");

try {
     String dateWithZeroedTime = fmt.format(dateObject)
     return fmt.parse(dateWithZeroedTime) //"03-09-2019 00:00:00"   
} catch(ParseException pe) {
    return //generate different unique ID like GUID random maybe;    
}

编码愉快!

【讨论】:

  • fmt.format 返回字符串。我需要获取 DateTime 类型来检查这个日期是否是今天
  • 有几个很棒的工具和包装器可以比较简单的日历之类的日期,但是由于我不知道您的完整用例,我更新了答案以随时间转换回 Date 对象归零。
  • 更新了更多细节以提供帮助。
猜你喜欢
  • 1970-01-01
  • 2021-02-02
  • 2023-03-11
  • 1970-01-01
  • 2013-10-06
  • 1970-01-01
  • 2012-06-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多