您的位置:

Java时间格式

一、常用的时间格式

在Java中,使用SimpleDateFormat类可以将日期和时间按照某种指定的格式输出。下面列举了几种常用的时间格式:

yyyy-MM-dd HH:mm:ss
yyyy年MM月dd日 HH:mm:ss
yy年M月d日 HH:mm:ss

其中,y代表年份,M代表月份,d代表天数,H代表小时数,m代表分钟数,s代表秒数。在格式中可以加入各种连接符,如-、/、年月日中文符号等,根据需求自行添加。

补充说明:

  • y和M的大小写有区分,大写的表示两位,如yyyy表示四位数字表示年份,小写的表示一位,如y表示四位数字表示年份。
  • 在yyyy、yy、M、MM、d、dd、h、hh、H、HH、m、mm、s、ss等格式符号前可以添加其他字符来表示日期分隔符、时间分隔符,或者中文等。
  • 小写的h表示12小时制,大写的H表示24小时制,hh表示两位的12小时制,并在1-9之间的数字前面添加0,如02表示早上2点。HH表示两位的24小时制,如23表示晚上11点。
  • 日期和时间之间的分隔符可以自定义,不一定是空格,可以是其他字符,如-、/、:等。

二、时间格式化示例

下面通过代码实例来演示如何使用SimpleDateFormat类来进行时间格式化。

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

public class TimeFormatDemo {
   public static void main(String[] args) {
      Date date = new Date();
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
      String formattedDate = sdf.format(date);
      System.out.println(formattedDate);
   }
}

输出:

2022年05月10日 15:28:27

在代码中,首先使用了Date类生成当前时间,然后创建了一个SimpleDateFormat对象并指定了时间格式,最后使用format方法将时间格式化。

三、时间戳转时间格式

时间戳指的是1970年1月1日00:00:00至今的毫秒数。Java中可以使用DateFormat类的parse方法将时间戳转换为指定格式的时间。下面是一个示例代码:

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

public class TimeStampDemo {
   public static void main(String[] args) {
      try {
         String timeStamp = "1620670200000";
         long time = Long.parseLong(timeStamp);
         Date date = new Date(time);
         DateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
         String formattedDate = sdf.format(date);
         System.out.println(formattedDate);
      } catch (NumberFormatException e) {
         e.printStackTrace();
      }
   }
}

输出:

2021年05月11日 17:43:20

在代码中,首先将时间戳字符串转换为long类型,然后使用Date类将long类型的时间戳转换为Date类型的时间,最后使用SimpleDateFormat对时间进行格式化输出。

四、时间格式转时间戳

Java中可以使用DateFormat类的parse方法将指定格式的时间转换为时间戳。下面是一个示例代码:

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

public class DateFormatDemo {
   public static void main(String[] args) {
      try{
         String strDate = "2021年05月11日 17:43:20";
         DateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
         Date date = sdf.parse(strDate);
         long timeStamp = date.getTime();
         System.out.println(timeStamp);
      } catch (Exception e) {
         e.printStackTrace();
      }
   }
}

输出:

1620670200000

在代码中,首先指定时间格式,使用parse方法将指定格式的时间字符串解析为Date对象,然后使用getTime方法将Date对象的时间转换为时间戳。

五、总结

Java中对时间进行格式化和转换的方法有很多种,本文介绍了比较常见的几个方法,并通过示例代码演示了使用方法。在实际开发中,根据具体需求选择合适的方法,并且注意时间字符串的格式与指定格式是否一致。