java时间戳转时间数据混乱
时间: 2023-09-27 18:07:30 浏览: 107
Java中的时间戳是以毫秒为单位的长整型数字,表示从1970年1月1日00:00:00 GMT开始的时间经过的毫秒数。要将时间戳转换为具体的日期和时间,可以使用Java的日期时间API。
首先,使用`java.util.Date`类的构造函数将时间戳转换为`Date`对象。然后,可以使用`SimpleDateFormat`类将`Date`对象格式化为所需的日期和时间字符串。
以下是一个示例代码,将时间戳转换为北京时间的日期和时间字符串:
```java
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
public class Main {
public static void main(String\[\] args) {
long timestamp = 1574237700123L; // 假设时间戳为1574237700123
Date date = new Date(timestamp);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
sdf.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai")); // 设置时区为北京时间
String formattedDateTime = sdf.format(date);
System.out.println(formattedDateTime);
}
}
```
输出结果为:2019-11-20 08:15:00.123
请注意,Java的日期时间API在Java 8之前存在一些问题,如缺少仅限日期或仅限时间的值。但是,Java 8引入了新的日期时间API(`java.time`包),它提供了更好的日期和时间处理功能。如果你使用的是Java 8或更高版本,建议使用新的日期时间API来处理日期和时间。
#### 引用[.reference_title]
- *1* *3* [java中的时间、日期](https://blog.csdn.net/qq_34491508/article/details/126221864)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [Java和MySQL中的时间戳和时区转换](https://blog.csdn.net/weixin_29387991/article/details/113436185)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文