gpt4 book ai didi

java - 如何从时间戳对象获取日期?

转载 作者:行者123 更新时间:2023-11-29 06:48:44 25 4
gpt4 key购买 nike

我将日期以这种格式存储在数据库 2019-07-03 12:14:11 中,所以当我从数据库中获取它时,它带有时间戳,但我只想要日期,这样我就可以将它用作我的 TreeMap 的键,用于根据日期对 TreeMap 进行排序。

例如。

假设我在数据库中有与这些日期相关的数据

2019-07-03 12:14:11 and
2019-07-03 12:14:27

现在两个日期相同但时间不同所以当我存储在我的 TreeMap 对象中时

TreeMap<Date,List<Integer>> t=new TreeMap<>();

然后尽管日期相同,但时间不同,TreeMap 将日期存储在不同的键中,但我想要,因为两个日期相同,因此与两个日期关联的数据应仅存储在一个键中。

如果与第一个 adte 关联的数据是 1,第二个日期是 2,那么在 TreeMap 中它应该将 1 和 2 存储在一个键下,如果另一个数据 3 与 2019-07-01 12:12:12 关联然后它应该存储在另一个键中并且键应该被排序

这是我写的

if(map.containsKey(invoiceHeader.getInvoice_Date()))
{

List<Integer> invoicesList= map.get(invoiceHeader.getInvoice_Date());
invoicesList.add(invoiceId);
map.put(invoiceHeader.getInvoice_Date(),invoicesList);

}
else {

List<Integer> invoicesList=new ArrayList<>();
invoicesList.add(invoiceId);
map.put(invoiceHeader.getInvoice_Date(),invoicesList);
}

但这里的关键是存储日期和时间,所以即使

2019-07-03 12:14:11 and
2019-07-03 12:14:27

创建了相同的 2 个键,1 个存储在一个键中,2 个存储在另一个键中,因为 getInvoice_Date() 正在获取存储在数据库中的日期和时间

如何实现我想要的?

最佳答案

不要使用古老的java.util.Date目的。使用新的 Java 8 时间 API,即解析 2019-07-03 12:14:11日期字符串到 LocalDateTime 对象,然后调用 toLocalDate() 获取仅限日期的 LocalDate 值,这将是您 map 中的键 ( Map<LocalDate, List<Integer>> )。

您的代码将是:

map.computeIfAbsent(invoiceHeader.getInvoice_Date().toLocalDate(), x -> new ArrayList<>())
.add(invoiceId);

如果getInvoice_Date()返回 java.util.Date , 然后你可以得到 LocalDate像这样的值:

Instant invoiceInstant = invoiceHeader.getInvoice_Date().toInstant();
LocalDateTime invoiceDateTime = LocalDateTime.ofInstant(invoiceInstant, ZoneId.systemDefault());
LocalDate invoiceDate = invoiceDateTime.toLocalDate();

结合上面的代码可以得到:

map.computeIfAbsent(LocalDateTime.ofInstant(invoiceHeader.getInvoice_Date().toInstant(),
ZoneId.systemDefault()).toLocalDate(),
x -> new ArrayList<>())
.add(invoiceId);

关于java - 如何从时间戳对象获取日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56876137/

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