在Java中使用函数实现日期时间转换和格式化
日期和时间的处理在计算机编程中是一个非常常见的问题,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 类实现日期时间转换和格式化,不同的日期时间格式可以用不同的模式参数来表示,开发人员可以根据实际需要进行选择。在日期时间处理时,需要注意时区的问题,尤其是在分布式系统中。
