📜  java 时间码 - Java (1)

📅  最后修改于: 2023-12-03 15:16:01.299000             🧑  作者: Mango

Java 时间码

在 Java 中,时间是以毫秒为单位表示的,从1970年1月1日午夜(以协调世界时计)开始计算,这被称为 UNIX 时间戳。可以使用 Java 提供的 Date 和 Calendar 类来处理时间。

Date 类

Date 类表示日期和时间。可以使用以下方法来获取、设置和操作 Date 对象:

  • Date():创建一个表示当前时间的 Date 对象。
  • Date(long date):创建一个表示指定时间的 Date 对象。
  • getTime():返回从1970年1月1日午夜开始计算的毫秒数。
  • setTime(long time):设置时间为指定的毫秒数。

以下是示例代码:

// 创建 Date 对象
Date now = new Date();
Date specificDate = new Date(1625000000000L);

// 获取和设置时间
long millis = now.getTime();
specificDate.setTime(1625096400000L);
Calendar 类

Calendar 类提供了比 Date 更完整和灵活的日期和时间计算方法。它是一个抽象类,因此不能直接实例化,但可以使用它的子类如 GregorianCalendar、BuddhistCalendar 等。

使用 Calendar 类时,需要注意以下几个方面:

  • 获取 Calendar 实例时,可以使用 getInstance() 方法获取默认时区的 Calendar 对象。
  • 使用 set(int field, int value) 方法设置特定的时间维度(例如年、月、日等)。
  • 获取不同时间维度的值时,使用 get(int field) 方法。

以下是示例代码:

// 获取 Calendar 实例
Calendar cal = Calendar.getInstance();

// 设置和获取时间
cal.set(Calendar.YEAR, 2022);
cal.set(Calendar.MONTH, Calendar.JANUARY);
cal.set(Calendar.DATE, 1);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);

int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH);
int date = cal.get(Calendar.DATE);
int hour = cal.get(Calendar.HOUR_OF_DAY);
int minute = cal.get(Calendar.MINUTE);
int second = cal.get(Calendar.SECOND);
SimpleDateFormat 类

SimpleDateFormat 类是一个日期格式化类,可以将 Date、Calendar 对象格式化为文本。它支持各种预定义的日期格式以及自定义的格式。

以下是示例代码:

// 创建 SimpleDateFormat 对象
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

// 格式化 Date 对象
Date now = new Date();
String formattedDate = df.format(now);

// 解析日期字符串
String dateString = "2022-01-01 00:00:00";
Date date = df.parse(dateString);
总结

Java 为开发者提供了丰富的日期和时间处理工具。通过 Date、Calendar 和 SimpleDateFormat 类,可以方便地处理时间,并以各种格式进行输出和解析。