繁体   English   中英

我们如何将 com.datastax.driver.core.LocalDate 转换为 java.util.Date?

[英]How can we convert com.datastax.driver.core.LocalDate to java.util.Date?

我正在处理日期。

Datastax 的 CQL cassandra API Row.getDate()返回一个com.datastax.driver.core.LocalDate

我想将 API 返回的com.datastax.driver.core.LocalDate对象转换为java.util.Date 我怎样才能做到这一点?

LocalDate.getMillisSinceEpoch() Javadoc 说返回自格林威治标准时间 1970 年 1 月 1 日以来的毫秒数。 而且, Date(long)构造函数 Javadoc 说分配一个Date对象并初始化它以表示自称为“纪元”的标准基本时间(即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。 所以,给定一个LocalDate ld你应该能够做类似的事情

Date d = new Date(ld.getMillisSinceEpoch());

正如其他答案所提到的,您可以使用

Date d = new Date(row.getDate().getMillisSinceEpoch());

或者你可以使用java.sql.Date.valueOf

Date d = java.sql.Date.valueOf(row.getDate().getString());

而不是使用row.getDate我个人使用返回 Date 对象本身的row.getTimestamp

Date d = row.getTimestamp();

您可以按照以下步骤将 datastax LocalDate 转换为日期:

  1. 使用 datastax LocalDate 中的年、月和日期创建 LocateDate
    datstax.Localdate dt = somevalue
    java.time.LocalDate ld = java.time.LocalDate.of(dt.getYear(), dt.getMonth(), dt.getDay())
  2. 格式高于 LocalDate 然后你会得到字符串类型的日期
    字符串 dtt = ld.format(DateTimeFormater.ofPattern("dd/MM/yyyy"))
  3. 然后使用 SimpleDateFormat 转换
    日期 tt = new SimpleDateFormat("dd/MM/yyyy").parse(dtt)

享受 :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM