- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我需要将字符串转换为 LocalTime(java-8 而不是 joda),该字符串中可能有也可能没有 nanoOfSeconds。字符串格式为 07:06:05
或 07:06:05.123456
该字符串在秒中可能有也可能没有小数位,如果有,则可以有任意数量的字符来表示纳秒部分。
使用 DateTimeForamtter,例如
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("H:mm:ss");
或
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("H:mm:ss.SSSSSS");
我可以使用 IF 语句来区分这两种格式,例如:
DateTimeFormatter dtf;
if (time1.contains(".") {
dtf = DateTimeFormatter.ofPattern("H:mm:ss.SSSSSS);
} else {
dtf = DateTimeFormatter.ofPattern("H:mm:ss);
}
这很好用,我对此很满意,但我还需要能够在小数点后使用不同数量的位置。
示例数据集可能是:
[11:07:59.68750, 11:08:00.781250, 11:08:00.773437500, 11:08:01]
有没有一种方法可以让格式化程序在小数位数未知时解析小数点后的任意位数而不抛出 java.time.format.DateTimeParseException
?
我希望我错过了一些非常简单的东西。
最佳答案
不需要做任何特殊的事情来解析这种格式。 LocalTime.parse(String)
已经处理了可选的纳秒:
System.out.println(LocalTime.parse("10:15:30"));
System.out.println(LocalTime.parse("10:15:30."));
System.out.println(LocalTime.parse("10:15:30.1"));
System.out.println(LocalTime.parse("10:15:30.12"));
System.out.println(LocalTime.parse("10:15:30.123456789"));
关于java - 使用/不使用 nanoOfSeconds 将字符串转换为 LocalTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30788369/
我在寻找一种优雅的方法来从另一个 LocalTime 中减去一个 LocalTime 时遇到问题,但不是减去一定的秒数或分钟数,而是这样: 本地时差 = 现在 - 之前; 显然这是行不通的,所以实际上
我最近使用 LocalDate.atStartOfDay() 回答了一些问题和 LocalDate.atTime(LocalTime.MIN) . 我想知道为什么没有 LocalDate.atEndO
我正在尝试检查当前时间是否在开始LocalTime 之后和另一个结束LocalTime 之前,即开始时间加 11 小时。如果开始时间是 11:00(结束时间将是 22:00),这会很好地工作。但是,当
为什么当我尝试显示 2 个不同参数的日期时,我将其放入 localtime() 函数,控制台显示 2 个相同的日期? 这是我的代码: #include #include #include int ma
我认为我做的一切都是正确的,但为什么我会得到这个: > Sys.time() [1] "2015-11-09 18:51:17 UTC" Warning messages: 1: In as.POSI
我试图编码一个包含LocalTime joda类型时间的对象。如果您尝试返回晚于12am的时间,则会出现问题,因此在下面的示例中,如果类(class)的开始时间是14:00(2pm),则时间将转换为0
我的代码仅支持 Android 中的 API 级别 >= 26: public static String in = "7:00:00"; public static String in_until
我认为我做的一切都是正确的,但为什么我会得到这个: > Sys.time() [1] "2015-11-09 18:51:17 UTC" Warning messages: 1: In as.POSI
为什么当我尝试显示 2 个具有不同参数的日期时,我将其放入 localtime() 函数,控制台显示 2 个相等的日期? 这是我的代码: #include #include #include int
在我的服务器上运行 date 会得到正确的时间。但是在 C(++) 中使用 localtime() 我得到了错误的时间。 运行日期:Fr 30. Nov 12:15:36 CET 2012 使用 lo
所以,我写了下一个函数: void actualizetime(){ puts("actualizetime called"); //debugging purposes. time_t ra
网上有大量代码让我相信下面的代码会给我当前时间。然而,事实并非如此。我得到了我认为是 UNIX 时代的时间; 1970 年 1 月 1 日 00:00;00。 现在真的很烦人,为什么我不能获得计算机系
我有这段代码可以从“29-02-2016”之类的日期返回星期几,但有时它会给我本地时间 (&t) 中的段错误。 int obterDiaSemana(char *str) { struct tm t
我有一段代码工作得很好,但现在不知何故不起作用。 我正在读取一个 csv 文件,但在读取格式为 4:38 的时间字段时出现错误。 我抛出异常的代码是: LocalTime.parse("4:38",
出于学习目的,我正在用 C++ 编写一个简单的日志记录类。我的代码包含一个返回今天日期字符串的函数。但是,每当调用“localtime”时,我都会收到编译器错误。 std::string get_da
我有一个使用 localtime() 的设置来获取一个带有本地时间的 tm。这一切都很好。 但是,如果我在应用程序运行时更改时区,它不会注意到我更改了时区。 有没有办法告诉它“再看一遍”以刷新到系统时
我正在尝试了解如何构建自定义 DateTimeFormatter为我的申请。我基本上需要处理这样写的时间 "HHMMSS.FFFFFF"。 我使用以下方法获得了 99% 的结果: import sta
我有两个 LocalTime 对象: LocalTime time1 = LocalTime.of(8, 0, 0); LocalTime time2 = LocalTime.of(15, 0, 0)
我想将我的字符串转换为 LocalTime 格式 String s = "1時30分:00"; String ss = s.replace("時", ":").replace("分",
我有一个航类行程计划,我需要在其中获取出发时间和到达时间之间的差异。我从数据中获取这些指定时间作为字符串。这是我的问题: import static java.time.temporal.Chrono
我是一名优秀的程序员,十分优秀!