Date & Calendar
文章目录
1.Date
表示特定的瞬间,精确到毫秒
1.2构造方法
说明 | |
---|---|
public Date() | 根据当前的默认毫秒值创建日期对象 |
public Date(long date) | 根据给定的毫秒值创建日期对象 |
1.3成员方法
说明 | |
---|---|
public long getTime() | 获取时间,以毫秒为单位 |
public void setTime(long time)) | 设置时间 |
1.4优点
- 快速通过当前毫秒值或者指定毫秒值创建日期对象,比较方便·
- 日期与日历类的相互转换都是依赖毫秒值
1.5缺点
- 显示时间的格式不太友好
- 大部分获取某一个具体的年份,月份…的方法已经过时
1.6java.sql.Date 和 java.util.Date之间的相互转换
java.sql.Date只显示日期,不显示时间(e.g. 2019-11-08)
java.util.Date DateUtil = new java.util.Date();
//java.util.Date -> java.sql.Date
java.sql.Date DateSql = new java.sql.Date(DateUtil.getTime());
//java.sql.Date -> java.util.Date
java.util.Date DateUtil2 = new java.util.Date(DateSql.getTime());
2.DateFormat类
是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间y因为DateFormate是抽象类,所以可以使用该类的子类SimpleDateFormat 。
2.1构造方法
- public SimpleDateFormat()
- public SimpleDateFormat(String pattern)
2.2成员方法
说明 | |
---|---|
public final String format(Date date) | 格式化:将实体对象转换成指定格式的文本 |
public Date parse(String source) | 解析:提取文本中的信息到指定的实体对象 |
3.Calendar
Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段,瞬间可用毫秒值来表示
3.1成员方法
-
public static Calendar getInstance()
-
public int get(int field)
-
public void add(int field,int amount)
-
public final void set(int year,int month,int date)
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
System.out.println(c);
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH) + 1;
int day = c.get(Calendar.DAY_OF_MONTH);
int hour = c.get(Calendar.HOUR);
int minute = c.get(Calendar.MINUTE);
int second = c.get(Calendar.SECOND);
String formatDate = String.format("现在是北京时间%d年%d月%s日 %d:%d:%d!!!", year, month,
day < 10 ? ("0" + day) : String.valueOf(day), hour, minute, second);
System.out.println(formatDate);
}
3.2日历和日期的相互转换,通过毫秒值
Date d = new Date(c.getTimeInMillis());
System.out.println(d);
Calendar c2 = Calendar.getInstance();
c2.setTime(d);
System.out.println(c2);