0
点赞
收藏
分享

微信扫一扫

Java如何将yyyyMMdd时间转换为时间戳

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.LocalDatejava.time.LocalDateTime 类来处理日期和时间。我们首先定义了一个 convertDateStringToTimestamp 方法,它接受一个字符串类型的日期,并使用 DateTimeFormatter 类定义日期格式。

接下来,我们通过 LocalDate.parse 方法将字符串解析为 LocalDate 对象。然后,我们使用 atStartOfDay 方法将 LocalDate 对象转换为 LocalDateTime 对象。最后,我们使用 toInstant 方法将 LocalDateTime 对象转换为时间戳,同时设置时区为 GMT+8。

无论你选择哪种方法,都可以将 yyyyMMdd 时间格式转换为时间戳。你可以根据自己的需求选择适合的方法。

举报

相关推荐

0 条评论