📜  Java中的日历 toString() 方法及示例(1)

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

Java中的日历 toString() 方法及示例

Java中的Calendar类提供了许多与日期和时间有关的操作方法,其中还包括toString()方法,该方法返回一个表示Calendar对象的字符串。在本文中,我们将探讨Calendar类中的toString()方法及其用法示例。

使用方法

在使用toString()方法时,需要首先创建一个Calendar对象,然后调用toString()方法即可。toString()方法返回的是一个String类型的字符串,表示Calendar对象的值。以下是toString()方法的语法:

public String toString()
返回值

Calendar对象的toString()方法返回一个String类型的字符串,表示Calendar对象的值。这个字符串的格式有点类似于"yyyy.MM.dd G 'at' HH:mm:ss z",其中各个字母的意义如下:

  • yyyy 表示年份。
  • MM 表示月份。
  • dd 表示日期。
  • G 表示公元。
  • HH 表示小时。
  • mm 表示分钟。
  • ss 表示秒。
  • z 表示时区。

例如,以下代码创建了一个Calendar对象,然后调用其toString()方法,输出了一个表示当前日期和时间的字符串:

import java.util.Calendar;

public class Demo {
    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        System.out.println(calendar.toString());
    }
}

输出结果可能类似于:

java.util.GregorianCalendar[time=1596332946794,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2020,MONTH=7,WEEK_OF_YEAR=33,WEEK_OF_MONTH=4,DAY_OF_MONTH=2,DAY_OF_YEAR=215,DAY_OF_WEEK=4,DAY_OF_WEEK_IN_MONTH=1,AM_PM=0,HOUR=11,HOUR_OF_DAY=11,MINUTE=9,SECOND=6,MILLISECOND=794,ZONE_OFFSET=28800000,DST_OFFSET=0]

可以看到,返回的字符串非常冗长,包含了很多信息,其中time表示1970年1月1日00:00到当前时间的毫秒数,各种set和areFieldsSet用于标记各个字段的状态。

由于返回值的字符串格式不是特别友好,因此我们通常不会直接将toString()的返回值用于展示或与其他字符串比较。如果需要转换成String类型的日期或时间,建议使用SimpleDateFormat类。如果需要比较日期或时间,可以使用 before(), after() 或 equals()等方法。

示例

下面是几个使用toString()方法的示例。

获取当前时间
Calendar now = Calendar.getInstance();
String strDate = now.toString();
System.out.println("当前时间为:" + strDate);
输出一年中的某个日期
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, 2021);
calendar.set(Calendar.MONTH, Calendar.OCTOBER);
calendar.set(Calendar.DATE, 1);
System.out.println("2021年10月1日是:" + calendar.toString());
输出一周中的某个时间
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
calendar.set(Calendar.HOUR_OF_DAY, 9);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
System.out.println("下周日上午九点是:" + calendar.toString());
总结

Calendar类中的toString()方法可以输出一个表示日期和时间的字符串,但返回值的格式比较冗长,如果需要转换成String类型的日期或时间,建议使用SimpleDateFormat类。如果需要比较日期或时间,可以使用 before(), after() 或 equals()等方法。