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

在Java中使用函数实现日期时间转换和格式化

发布时间:2023-06-21 14:05:50

日期和时间的处理在计算机编程中是一个非常常见的问题,Java 提供了丰富的工具和函数来方便我们进行日期时间的处理。本文将介绍如何使用 Java 函数实现日期时间转换和格式化。

一、Date 类和 SimpleDateFormat 类

Java.util.Date 是代表日期和时间的类,它被定义为一个长整型数值,表示自格林威治标准时间(GMT)1970 年 1 月 1 日 00:00:00 到特定时间点的毫秒数。Java.util.SimpleDateFormat 类则提供了将 Date 类型转换为指定格式的字符串以及将指定格式的字符串转换为 Date 类型的方法。

二、日期时间转换

1. Date 转换为 String

要将 Date 类型转换为指定格式的字符串,我们需要使用 SimpleDateFormat 类的 format() 方法。该方法接收一个 Date 类型的参数和一个 String 类型的参数,其中 String 类型参数是指定的日期时间格式。例如,以下代码将当前时间转换为 MM/dd/yyyy 格式的字符串:

import java.text.SimpleDateFormat;
import java.util.Date;

public class DateConvertExample {

  public static void main(String[] args) {
    Date now = new Date();
    SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
    String formattedDate = sdf.format(now);
    System.out.println(formattedDate);
  }
  
}

输出结果为:07/13/2021。

2. String 转换为 Date

如果要将指定格式的字符串转换为 Date 类型,我们需要使用 SimpleDateFormat 类的 parse() 方法,该方法接收一个 String 类型的参数,该参数表示要转换的日期时间字符串。例如,以下代码将字符串 "07/13/2021" 转换为 Date 类型:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateConvertExample {

  public static void main(String[] args) throws ParseException {
    String dateString = "07/13/2021";
    SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
    Date date = sdf.parse(dateString);
    System.out.println(date);
  }
  
}

输出结果为:Tue Jul 13 00:00:00 CST 2021。

三、日期时间格式化

Java.util.SimpleDateFormat 的 format() 方法可以将指定格式的日期时间字符串转换成 Date 对象,而它的另一个方法 parse() 方法则可以将 Date 对象转换成指定格式的字符串。上面已经提到过,这两个方法的常用场景了,此处不再赘述。本节将着重介绍 SimpleDateFormat 除这两个方法之外,还提供的格式化输出的功能。

除了常用的日期时间格式,SimpleDateFormat 还支持多种自定义模式的格式化输出。

1. 将 Date 格式化输出

以下代码将日期时间格式化为 "yyyy-MM-dd HH:mm:ss.SSS" 格式输出:

import java.text.SimpleDateFormat;
import java.util.Date;

public class DateFormatExample {

  public static void main(String[] args) {
    Date now = new Date();
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
    String formattedDate = sdf.format(now);
    System.out.println(formattedDate);
  }
  
}

输出结果为:2021-07-13 20:12:21.916。

2. 将指定格式的字符串转换为其他格式的字符串

以下代码将 "07/13/2021" 转换为 "2021-07-13" 格式的字符串:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateFormatExample {

  public static void main(String[] args) throws ParseException {
    String dateString = "07/13/2021";
    SimpleDateFormat sdf1 = new SimpleDateFormat("MM/dd/yyyy");
    SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
    Date date = sdf1.parse(dateString);
    String formattedDate = sdf2.format(date);
    System.out.println(formattedDate);
  }
  
}

输出结果为:2021-07-13。

四、总结

Java.util.Date 类和 SimpleDateFormat 类提供了丰富的工具和函数来方便我们进行日期时间的处理。本文介绍了如何使用 SimpleDateFormat 类实现日期时间转换和格式化,不同的日期时间格式可以用不同的模式参数来表示,开发人员可以根据实际需要进行选择。在日期时间处理时,需要注意时区的问题,尤其是在分布式系统中。