gpt4 book ai didi

java - 从数据库中检索数据并转换

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

如何创建一个方法来从数据库中检索具有不同值的数据列(例如 20040804142000、20040805034000)?

值是 YYYYMMDDHHMMSS,我想将它们转换为从凌晨 12 点开始的分钟数。有什么方法可以转换我需要的所有数据并将其实现到我的语句中。

例如输出将是

20040805034000 > 220

最佳答案

Java 8

所以,从 How to parse/format dates with LocalDateTime? (Java 8) 开始和 DateTimeFormatter您可以使用类似...将 String 值转换为 LocalDateTime

String value = "20040805034000";
DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
LocalDateTime ldt = LocalDateTime.parse(value, format);
System.out.println(ldt);

输出 2004-08-5T03:40

接下来您可以使用 ChronoUnit.SECONDS.between 来计算两次之间的秒数,但这意味着您需要一个锚定时间,在您的情况下是午夜...

LocalDateTime midnight = ldt.withHour(0).withMinute(0).withSecond(0).withNano(0);
long seconds = ChronoUnit.SECONDS.between(midnight, ldt);
System.out.println(seconds);

输出 13200

Joda-Time

如果您不能使用 Java 8,请改用 Joda-Time。所以从Converting a date string to a DateTime object using Joda Time library开始和 Java (Joda): Seconds from midnight of LocalDateTime

String value = "20040805034000";
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyyMMddHHmmss");
LocalDateTime dt = formatter.parseLocalDateTime(value);
System.out.println(dt);

LocalDateTime midnight = dt.withMillisOfDay(0);

long seconds = Seconds.secondsBetween(midnight, dt).getSeconds();
System.out.println(seconds);

关于java - 从数据库中检索数据并转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29786357/

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