日期与时间
- java.util 包提供了 Date 类来封装当前的日期和时间。
Date 类提供两个构造函数来实例化 Date 对象。 - 第一个构造函数使用当前日期和时间来初始化对象。Date()
- 第二个构造函数接收一个参数,该参数是从1970年1月1日起的毫秒数。
Date(long millisec)
获取当前时间和日期
Java中获取当前日期和时间很简单,使用 Date 对象的 toString() 方法来打印当前日期和时间即可
import java.util.Date;
public class DateDemo {
public static void main(String args[])
{ // 初始化 Date 对象
Date date = new Date();
// 使用 toString() 函数显示日期时间
System.out.println(date.toString());
}
}
使用SimpleDateFormat来格式化日期
SimpleDateFormat 是一个以语言环境敏感的方式来格式化和分析日期的类。SimpleDateFormat 允许选择任何自定义日期时间格式.
import java.util.*;
import java.text.*;
public class DateDemo {
public static void main(String args[]) {
Date dNow = new Date( );
SimpleDateFormat ft = new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz");
System.out.println("Current Date: " + ft.format(dNow) );
}
}
yyyy 是公元年,MM 是月份,dd 是日期,HH:mm:ss 是时、分、秒。
注意:有的格式大写,有的格式小写,例如 MM 是月份,mm 是分;HH 是 24 小时制,而 hh 是 12 小时制。
使用printf格式化日期
printf 方法可以很轻松地格式化时间和日期。使用两个字母格式, 它以 %t 开头并且以下面表格中的一个字母结尾。
import java.util.Date;
public class DateDemo {
public static void main(String args[]) {
Date date = new Date(); // 初始化 Date 对象
System.out.printf("全部日期和时间信息: %tc%n",date); //c的使用
System.out.printf("年-月-日格式: %tF%n",date); //f的使用
System.out.printf("月/日/年格式: %tD%n",date); //d的使用
System.out.printf("HH:MM:SS PM格式(12时制):%tr%n",date); //r的使用
System.out.printf("HH:MM:SS格式(24时制): %tT%n",date); //t的使用
System.out.printf("HH:MM格式(24时制): %tR",date); //R的使用 } }
Calendar类
1.Canlendar 与 Date 进行转换
package date;
//
import java.util.Calendar;
import java.util.Date;
public class TestDate {
public static void main(String[] args) {
//采用单例模式获取日历对象Calendar.getInstance();
Calendar c = Calendar.getInstance();
//通过日历对象得到日期对象
Date d = c.getTime();
Date d2 = new Date(0);
c.setTime(d2); //把这个日历,调成日期 : 1970.1.1 08:00:00
}
}
2.日期处理(翻日历)
add方法,在原日期上增加年/月/日
set方法,直接设置年/月/日
package date;
import java.text.SimpleDateFormat;
//
import java.util.Calendar;
import java.util.Date;
public class TestDate {
private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
Date now = c.getTime();
// 当前日期
System.out.println("当前日期:\t" + format(c.getTime()));
// 下个月的今天
c.setTime(now);
c.add(Calendar.MONTH, 1);
System.out.println("下个月的今天:\t" +format(c.getTime()));
// 去年的今天
c.setTime(now);
c.add(Calendar.YEAR, -1);
System.out.println("去年的今天:\t" +format(c.getTime()));
// 上个月的第三天
c.setTime(now);
c.add(Calendar.MONTH, -1);
c.set(Calendar.DATE, 3);
System.out.println("上个月的第三天:\t" +format(c.getTime()));
}
private static String format(Date time) {
return sdf.format(time);
}
}
更多calendar类方法可见:https://blog.youkuaiyun.com/ytasdfg/article/details/81086118