欢迎访问宙启技术站
智能推送

利用Java函数实现日期格式化及时间戳转换的方法总结

发布时间:2023-06-14 22:07:15

java中对日期的操作是非常常见的,比如需要将日期格式化成特定的格式、需要将时间戳转化为日期等等。本篇文章将为大家介绍Java中日期格式化及时间戳转换的相关方法。

1.日期格式化

1.1 SimpleDateFormat类

这个类是Java中常用的日期格式化类。它可以将指定格式的字符串转化为日期对象,也可以将日期对象转化为指定格式的字符串。它的构造方法接收一个String类型的参数,表示日期格式。

示例代码:

import java.text.SimpleDateFormat;
import java.util.*;

public class DateUtil {
    public static String format(Date date,String format){
        SimpleDateFormat dateFormat = new SimpleDateFormat(format);
        return dateFormat.format(date);
    }
}

在上面的代码中,我们定义了一个DateUtil类,并定义了一个format()方法,该方法接收两个参数:一个日期对象和一个日期格式的字符串。在方法中,我们创建了一个SimpleDateFormat对象,并将日期格式的字符串传递给构造函数,然后调用dateFormat.format()方法,将日期对象转换为字符串。

使用示例:

public static void main(String[] args) {
    Date now = new Date();
    String format1 = DateUtil.format(now,"yyyy-MM-dd HH:mm:ss");
    String format2 = DateUtil.format(now,"yyyy/MM/dd");
    String format3 = DateUtil.format(now,"yyyy年MM月dd日");
    System.out.println(format1);
    System.out.println(format2);
    System.out.println(format3);
}

输出结果:

2021-05-20 13:59:21
2021/05/20
2021年05月20日

1.2 DateTimeFormatter类

DateTimeFormatter类是Java 8中引入的日期时间格式化类。它可以将日期时间格式化为指定的字符串,并且支持线程安全。

示例代码:

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class DateUtil {
    public static String format(LocalDateTime datetime,String pattern){
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
        return datetime.format(formatter);
    }
}

在上面的代码中,我们定义了一个DateUtil类,并定义了一个format()方法,该方法接收两个参数:一个LocalDateTime对象和一个日期格式字符串。在方法中,我们使用DateTimeFormatter.ofPattern()方法创建一个DateTimeFormatter对象,并将日期格式字符串传递给它,然后调用datetime.format()方法将日期格式化为字符串。

使用示例:

public static void main(String[] args) {
    LocalDateTime now = LocalDateTime.now();
    String format1 = DateUtil.format(now,"yyyy-MM-dd HH:mm:ss");
    String format2 = DateUtil.format(now,"yyyy/MM/dd");
    String format3 = DateUtil.format(now,"yyyy年MM月dd日");
    System.out.println(format1);
    System.out.println(format2);
    System.out.println(format3);
}

输出结果:

2021-05-20 14:06:48
2021/05/20
2021年05月20日

2.时间戳转换

2.1 Date类

Date类是Java中表示时间戳的类,它的构造函数接收一个long类型的参数,表示1970年1月1日0时0分0秒到当前时间的毫秒数。

示例代码:

import java.util.Date;

public class DateUtil {
    public static Date toDate(long timestamp){
        return new Date(timestamp);
    }
}

在上面的代码中,我们定义了一个DateUtil类,并定义了一个toDate()方法,该方法接收一个时间戳参数,并返回一个Date对象。

使用示例:

public static void main(String[] args) {
    long timestamp = 1621493363000L;
    Date date = DateUtil.toDate(timestamp);
    System.out.println(date);
}

输出结果:

Thu May 20 14:22:43 CST 2021

2.2 Instant类

Instant类是Java 8中引入的一个表示时间戳的类。它的now()方法可以获取当前时间戳,也可以通过ofEpochMilli()方法创建一个指定时间戳的Instant对象,它还实现了toEpochMilli()方法,用于将Instant对象转换为时间戳。

示例代码:

import java.time.Instant;

public class DateUtil {
    public static Instant toInstant(long timestamp){
        return Instant.ofEpochMilli(timestamp);
    }
    public static long toTimestamp(Instant instant){
        return instant.toEpochMilli();
    }
}

在上面的代码中,我们定义了一个DateUtil类,并定义了两个方法:toInstant()和toTimestamp()。toInstant()方法接收一个时间戳参数,并返回一个Instant对象;toTimestamp()方法接收一个Instant对象,并返回一个long类型的时间戳。

使用示例:

public static void main(String[] args) {
    long timestamp = 1621493363000L;
    Instant instant = DateUtil.toInstant(timestamp);
    long timestamp2 = DateUtil.toTimestamp(instant);
    System.out.println(timestamp2);
}

输出结果:

1621493363000

以上就是Java中日期格式化及时间戳转换的方法总结,希望对大家有所帮助!