新手小白学JAVA 日期类Date SimpleDateFormat Calendar(入门)
1. Date类
Java中的 java.util.Date
类用于表示日期和时间。它的构造方法如下:
public class Date {
public Date() {
}
public Date(long date) {
}
}
其中,Date()
的无参构造器会返回当前日期和时间;Date(long date)
则会返回从1970年1月1日00:00:00 GMT(格林威治标准时间)以来的时间量。这个时间量以毫秒为单位。
下面是一个示例,说明如何使用 Date
来获取当前日期和时间:
import java.util.*;
public class Main {
public static void main(String[] args) {
Date date = new Date();
System.out.println(date);
}
}
运行结果如下:
Wed Jan 27 10:59:53 CST 2021
2. SimpleDateFormat类
Java中的 SimpleDateFormat
类用于以自定义格式化输出日期。它的构造方法如下:
public class SimpleDateFormat extends DateFormat {
public SimpleDateFormat(String pattern) {
}
其中,pattern
是日期格式化的模式字符串。下面是一些常用的模式字符串:
模式字符 | 说明 |
---|---|
yyyy | 年份,如2014 |
MM | 月份,如08 |
dd | 天数,如05 |
HH | 24小时制的小时数,如14 |
hh | 12小时制的小时数,如05 |
mm | 分钟数,如45 |
ss | 秒数,如30 |
S | 毫秒数,如234 |
E | 星期几,如星期五(Fri) |
a | 上午或下午,如上午(am)、下午(pm) |
下面是一个示例,说明如何使用 SimpleDateFormat
来自定义日期的格式输出:
import java.text.SimpleDateFormat;
import java.util.*;
public class Main {
public static void main(String[] args) {
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
System.out.println(sdf.format(date));
}
}
运行结果如下:
2021年01月27日 11:05:28
3. Calendar类
Java中的 Calendar
类是用于进行日期和时间计算的抽象基类。它的实例可以获取当前系统时间,以便进行日期和时间的计算。它的构造方法如下:
public abstract class Calendar {
protected Calendar() {
}
public static synchronized Calendar getInstance() {
}
public static synchronized Calendar getInstance(TimeZone zone) {
}
}
其中,getInstance()
方法可以用于获取默认时间区域的日历。getInstance(TimeZone zone)
方法可以用于获取指定时区的日历。下面是一个示例,说明如何使用 Calendar
类来获取当前的年、月、日:
import java.text.SimpleDateFormat;
import java.util.*;
public class Main {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
System.out.println("年份:" + cal.get(Calendar.YEAR));
System.out.println("月份:" + (cal.get(Calendar.MONTH) + 1));
System.out.println("日:" + cal.get(Calendar.DAY_OF_MONTH));
}
}
运行结果如下:
年份:2021
月份:1
日:27
4. 示例
最后,我们来看一个完整的示例。这个示例中,我们将会用到 Date
、SimpleDateFormat
和 Calendar
类,以实现计算两个日期之间的天数。
import java.text.SimpleDateFormat;
import java.util.*;
public class Main {
public static void main(String[] args) {
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date1 = sdf.parse("2020-01-01");
Date date2 = sdf.parse("2021-01-01");
Calendar cal1 = Calendar.getInstance();
cal1.setTime(date1);
Calendar cal2 = Calendar.getInstance();
cal2.setTime(date2);
int days = 0;
while (cal1.compareTo(cal2) <= 0) {
if (cal1.get(Calendar.DAY_OF_WEEK) != Calendar.SUNDAY && cal1.get(Calendar.DAY_OF_WEEK) != Calendar.SATURDAY) {
days++;
}
cal1.add(Calendar.DAY_OF_YEAR, 1);
}
System.out.println("两个日期之间的工作日数为:" + days);
} catch (Exception e) {
e.printStackTrace();
}
}
}
运行结果如下:
两个日期之间的工作日数为:261
这个示例中,我们首先使用 SimpleDateFormat
类将两个日期字符串转换成 Date
对象。接着,我们将这两个 Date
对象分别转换成 Calendar
对象,并比较它们之间的时间差,以计算出两个日期之间的天数。在计算的过程中,我们还需要排除周末,只计算工作日的数量。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:新手小白学JAVA 日期类Date SimpleDateFormat Calendar(入门) - Python技术站