gpt4 book ai didi

java - 在 Java 中将刻度转换为分钟的最佳方法(金融)

转载 作者:行者123 更新时间:2023-11-30 06:53:40 28 4
gpt4 key购买 nike

我有一个庞大的数据库,其中每天包含一个具有以下格式的文本文件:“HH:mm:ss xxxx.xx”每个交易日的几乎每一秒,所以我在每个文本文件中都有数千行。我正在寻找将这些行转换为 HashMap 的最佳方法,其中每个键代表交易日的新分钟。

例如,我想制作以下几行:

00:08:48    9819,9
00:09:10 9818,7
00:09:44 9819,9
00:09:51 9820,9
00:10:07 9822,1

在 HashMap 中看起来像这样:

myHashMap.put("00:09:00", 9818.7)

myHashMap.put("00:10:00", 9822.1)

PS:我知道“00:09:00”不是一个好的日期格式,它只是为了举例!

最佳答案

如果您正在使用 - Files#lines在这方面做得很好。 LocalTime类代表一天中的时间。

警告:OutOfMemoryError如果要在内存中创建太多对象,可能会抛出。

Map<LocalTime, Double> map = Files.lines(Paths.get("D:\\data.txt"))
.map(x -> x.split(" "))
.collect(Collectors.toMap(
x -> LocalTime.parse(x[0]),
x -> Double.valueOf(x[1])));

对于特定的double 格式,您可以使用以下内容

(Double)NumberFormat.getInstance(Locale.GERMANY).parse(x[1]))

货币

由于数据似乎是货币,BigDecimal 可能是比 Double 更好的选择。

Map<LocalTime, BigDecimal> map = Files.lines(Paths.get("D:\\data.txt"))
.map(x -> x.split(" "))
.collect(Collectors.toMap(
x -> LocalTime.parse(x[0]),
x -> new BigDecimal(x[1])));

关于java - 在 Java 中将刻度转换为分钟的最佳方法(金融),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37257611/

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