Java时间格式的转换应用实例

发布时间:2023-05-19

在Java编程中,对于时间格式的转换是一项很基础但也很重要的操作。本文将从多个方面,介绍Java中时间格式的转换应用实例。

一、格式化时间

在Java中,我们可以使用SimpleDateFormat类对一个日期/时间进行格式化:

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formattedDate = formatter.format(new Date());
System.out.println("Formatted date is: " + formattedDate);

上述代码中,我们定义了一个SimpleDateFormat对象来指定输出日期格式,然后使用format方法将时间转换为字符串并输出。 我们还可以指定不同的日期格式,以满足不同的需求。

SimpleDateFormat formatter2 = new SimpleDateFormat("dd MMM yyyy");
String formattedDate2 = formatter2.format(new Date());
System.out.println("Formatted date is: " + formattedDate2);

上述代码中,我们将日期格式化为“dd MMM yyyy”的形式。此外,我们还可以使用SimpleDateFormat类来解析指定格式的字符串,并将其转换为日期对象。

二、时间戳转换

Unix 时间戳是一个从 1970 年 1 月 1 日 00:00:00 GMT 到指定时间的秒数。Java中可以使用时间戳来表示时间,也可以将时间戳转换为指定格式的日期。 以下是将 Unix 时间戳转换为日期的示例:

long unixTimestamp = 1630473600;
Date date = new Date(unixTimestamp * 1000L); 
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z");
sdf.setTimeZone(TimeZone.getTimeZone("GMT+8"));
String formattedDate = sdf.format(date);
System.out.println("Converted date is: " + formattedDate);

上述代码中,我们使用Date构造函数将时间戳转换为日期对象,并使用SimpleDateFormat类对日期进行格式化,最后输出转换后的日期。 同时,我们也可以将指定格式的日期转换为 Unix 时间戳:

String dateStr = "2021-09-01 00:00:00";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = sdf.parse(dateStr);
long unixTimestamp = date.getTime() / 1000;
System.out.println("Unix timestamp is: " + unixTimestamp);

三、获取当前时间

在Java中,我们可以通过以下方式获取当前时间:

Date currentDate = new Date();
System.out.println("Current date is: " + currentDate);

以上代码将返回当前系统时间。如果你需要获取格式化后的日期,可以参考第一部分的示例。 另外,我们也可以通过使用Calendar类获取当前时间,并进行相应的操作。例如,我们可以获取当前时间的年份、月份、日期、时、分、秒等:

Calendar calendar = Calendar.getInstance();
int year       = calendar.get(Calendar.YEAR);
int month      = calendar.get(Calendar.MONTH);
int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
int hourOfDay  = calendar.get(Calendar.HOUR_OF_DAY);
int minute     = calendar.get(Calendar.MINUTE);
int second     = calendar.get(Calendar.SECOND);
System.out.println("Current date is: " + year + "-" + month + "-" + dayOfMonth + 
                   " " + hourOfDay + ":" + minute + ":" + second);

以上代码将返回当前系统时间的年份、月份、日期、时、分、秒等信息。