欢迎关注微信公众号:数据科学与艺术 作者WX:superhe199
在Java中,将一个日期时间格式的字符串转换为long
类型,通常意味着将其转换为从1970年1月1日00:00:00 UTC到该时间点的毫秒数。这可以通过使用SimpleDateFormat
和Date
类或者更现代的java.time
包中的LocalDateTime
和Instant
类来完成。下面是两种方法的示例:
使用SimpleDateFormat
和Date
import java.text.SimpleDateFormat;
import java.util.Date;
public class Main {
public static void main(String[] args) {
String time = "2022-03-02 03:11:30";
try {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = formatter.parse(time);
long timestamp = date.getTime();
System.out.println("Timestamp: " + timestamp);
} catch (Exception e) {
e.printStackTrace();
}
}
}
使用java.time
包(推荐)
从Java 8开始,推荐使用java.time
包中的类,因为它们提供了更好的性能和线程安全性。
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
String time = "2023-02-02 03:11:30";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime localDateTime = LocalDateTime.parse(time, formatter);
ZoneId zoneId = ZoneId.systemDefault();
long timestamp = localDateTime.atZone(zoneId).toInstant().toEpochMilli();
System.out.println("Timestamp: " + timestamp);
}
}
这两种方法都可以将给定的时间字符串"2023-02-02 03:11:30"转换为对应的毫秒时间戳。请根据你的项目需求和Java版本选择合适的方法。