在java中使用LocalDateTime来显示时间到微秒的精度有什么办法吗?就像我们在SimpleDateFormat中使用的那样:
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss:S");类似地,如果我想要这样显示,我应该做什么:我读取的hours:minutes:seconds:milliseconds:microseconds可以使用LocalDateTime完成。但是怎么做呢?
发布于 2016-09-08 04:23:33
ISO 8601
您想要的一天时间格式是标准的ISO 8601格式.在解析/生成日期时间值的字符串表示时,java.time类默认使用ISO8601格式。
纳秒
java.time类支持高达纳秒的分辨率。他们所取代的遗留日期-时间类仅限于毫秒。
LocalTime
LocalTime类表示一天中没有日期和没有时区的时间.
确定当前的一天时间确实需要一个时区.在任何特定的时刻,每天的时间在全球各地都是不同的.
ZoneId z = ZoneId.of( "America/Montreal" );
LocalTime lt = LocalTime.now( z );通过调用toString生成一个字符串。
String output = lt.toString(); // 12:34:56.789在Java 8中,捕获当前时间限制为毫秒。类可以保持纳秒,但是Clock实现有遗留的限制。在Java9中,一个新的Clock实现能够以纳秒为单位捕获当前时间(取决于主机的硬件能力)。
这个问题提到了LocalDateTime。那堂课是约会时间,约会加一天时间.但这门课故意缺乏时区的概念。几乎从来不像你想要的那样,因为LocalDateTime并不代表时间线上的某个时刻。如果没有时区的背景,“今年1月15日下午3点”就没有意义了,因为下午3点在巴黎、德克萨斯州和魁北克的蒙特雷( Montréal魁北克)都不一样,那里和新西兰的奥克兰不一样。指定一个时区(ZoneId)来确定ZonedDateTime对象中的实际时刻。对于UTC值,只需使用Instant。
关于java.time
java.time框架内置到Java8和更高版本中。这些类取代了麻烦的旧日期时间类,如java.util.Date、.Calendar和java.text.SimpleDateFormat。
尤达-时间项目,现在在维护模式,建议迁移到java.time。
要了解更多信息,请参见Oracle教程。并搜索堆栈溢出以获得许多示例和解释。
java.time的许多功能都在三次-支持中移植到Java6&7,并进一步适应了ThreeTenABP中的安卓 (参见https://stackoverflow.com/q/38922754/642706)。
三次-额外项目使用其他类扩展java.time。这个项目是将来可能加入java.time的试验场。您可以在这里找到一些有用的类,如Interval、YearWeek、YearQuarter等。
发布于 2016-09-07 23:46:19
看来java.time.format.DateTimeFormatter会做你想做的事。参见此处的javadoc:https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html
代码似乎与SimpleDateFormat相同,因此相同的格式字符串"HH:mm:ss:S“将继续工作。
发布于 2016-09-07 23:51:21
我上次读到,java 8可以按照这里的文档处理纳秒.https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html -我听说java 9将有一些日期和时间特性的主要更新。
https://stackoverflow.com/questions/39380521
复制相似问题