编写程序,输入一个13位的数(为格林威治标准时间的毫秒数,如1631247803785),计算并输出此书对应的时间格格式为:12:23:23。测试输入:1631267803785。
时间: 2024-09-15 19:11:41 浏览: 78
gmt:格林威治标准时间
以下是Java代码,它将接受一个13位的毫秒数作为输入,然后计算并输出对应的时间,格式为小时:分钟:秒。
```java
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
public class TimeConverter {
public static void main(String[] args) {
long millis = 1631267803785L; // 示例输入,实际使用时应从输入中获取
String formattedTime = convertMillisToTime(millis);
System.out.println(formattedTime);
}
public static String convertMillisToTime(long millis) {
LocalDateTime dateTime = LocalDateTime.ofEpochSecond(0, 0,
(int) (millis % 1000), // 获取毫秒部分
java.time.ZoneOffset.UTC);
long seconds = millis / 1000;
dateTime = dateTime.plusSeconds(seconds);
return dateTime.format(DateTimeFormatter.ofPattern("HH:mm:ss"));
}
}
```
解释:
1. `java.time.LocalDateTime` 类用于表示没有时区的日期和时间。
2. `ofEpochSecond` 方法创建一个 `LocalDateTime` 实例,使用从纪元(1970-01-01T00:00Z)开始的秒数和毫秒部分。
3. `plusSeconds` 方法用于添加秒数到日期时间上。
4. `DateTimeFormatter` 类用于格式化日期时间。
5. `% 1000` 操作用于从输入的毫秒数中分离出毫秒部分,然后添加到由 `ofEpochSecond` 创建的日期时间实例上。
为了测试不同的输入,你可以修改 `millis` 变量的值,或者从命令行参数、文件或其他输入源中读取该值。
阅读全文