Java 中将 yyyyMMdd 时间转换为时间戳的方法有多种,下面将介绍两种常见的实现方式。
方法一:使用 SimpleDateFormat 和 Date 类
首先,我们可以使用 SimpleDateFormat 类将字符串格式的时间转换为 Date 对象。然后,使用 Date 对象的 getTime() 方法获取时间戳。
以下是示例代码:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateUtils {
public static long convertDateStringToTimestamp(String dateString) throws ParseException {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
Date date = dateFormat.parse(dateString);
return date.getTime();
}
public static void main(String[] args) {
try {
String dateString = "20220101";
long timestamp = convertDateStringToTimestamp(dateString);
System.out.println("时间戳: " + timestamp);
} catch (ParseException e) {
e.printStackTrace();
}
}
}
在上述代码中,我们定义了一个 convertDateStringToTimestamp
方法,它接受一个字符串类型的日期,然后使用 SimpleDateFormat 类将其转换为 Date 类型。最后,通过调用 Date 对象的 getTime()
方法获取时间戳。
方法二:使用 LocalDate 和 LocalDateTime 类
Java 8 引入了新的日期和时间 API,我们也可以使用它们来实现将 yyyyMMdd 时间转换为时间戳的功能。
以下是示例代码:
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
public class DateUtils {
public static long convertDateStringToTimestamp(String dateString) {
DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyyMMdd");
LocalDate localDate = LocalDate.parse(dateString, dateFormat);
LocalDateTime localDateTime = localDate.atStartOfDay();
return localDateTime.toInstant(ZoneOffset.ofHours(8)).toEpochMilli();
}
public static void main(String[] args) {
String dateString = "20220101";
long timestamp = convertDateStringToTimestamp(dateString);
System.out.println("时间戳: " + timestamp);
}
}
在上述代码中,我们使用了 java.time.LocalDate
和 java.time.LocalDateTime
类来处理日期和时间。我们首先定义了一个 convertDateStringToTimestamp
方法,它接受一个字符串类型的日期,并使用 DateTimeFormatter
类定义日期格式。
接下来,我们通过 LocalDate.parse
方法将字符串解析为 LocalDate
对象。然后,我们使用 atStartOfDay
方法将 LocalDate
对象转换为 LocalDateTime
对象。最后,我们使用 toInstant
方法将 LocalDateTime
对象转换为时间戳,同时设置时区为 GMT+8。
无论你选择哪种方法,都可以将 yyyyMMdd 时间格式转换为时间戳。你可以根据自己的需求选择适合的方法。