- Date
- SimpleDateFormat
- Calendar
Date
概述:Date课程以Date级的Date表示特定的时间。
Date在java.util包下,使用它需要进行导包,并且创建对象。
public long getTime()
获取的是日期对象从1970年1月1日0时0分0秒到现在的毫秒值
用法和System的currentTimeMillis()方法一样,都是获取的是日期对象从1970年1月1日0时0分0秒到现在的毫秒值。
public class DateDome {
public static void main(String[] args) {
Date d = new Date();
long time = d.getTime();
long l = System.currentTimeMillis();
System.out.println(time);
System.out.println(l);
}
}
1657181237362
1657181237362
进程已结束,退出代码 0
public void setTime(long time)
设置时间,给的是毫秒值
public class DateDome {
public static void main(String[] args) {
Date d = new Date();
long t = 1000*60*60;
d.setTime(t);
System.out.println(d);
}
}
Thu Jan 01 09:00:00 CST 1970
进程已结束,退出代码 0
为啥是9点,因为时区原因。
SimpleDateFormat
概述:SimpleDateFormat是一个具体的类,用于以区域设置敏感的方式格式化和解析日期。
在java.text包下,使用是需要导包和创建对象。
日期和时间格式由日期和时间模式字符串指定,在日期和时间模式字符串中,从’A’到’Z’以及从’a’到’z’被解释为表示日期或者时间字符串的组件的模式字母。
y ---年 M ---月 d --- 日 H --- 时 m --- 分 s --- 秒
public final String format(Date date)
格式化(从Date到String)将日期格式化成日期/时间字符串
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleDateFormatDome {
public static void main(String[] args) {
Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd天 HH时mm分ss秒");
String format = sdf.format(d);
System.out.println(format);
}
}
2022年07月07天 16时23分54秒
进程已结束,退出代码 0
public Date parse (String source)
解析(从String到Date) 从给定字符串的开始解析文本以生成日期
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleDateFormatDome {
public static void main(String[] args) throws ParseException {
String s = "2018年08月06天 15时20分00秒";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd天 HH时mm分ss秒");
Date parse = sdf.parse(s);
System.out.println(parse);
}
}
Mon Aug 06 15:20:00 CST 2018
进程已结束,退出代码 0
throws ParseException这个是个啥?这是异常throws是抛出异常。还没学到的不用管。之后会写异常的博客。
Calendar
概述:Calendar为某一时刻和一组日历字段之间的转换提供了一些方法,并为操作日历字段提供了一些方法
Calendar的在java.util包下,使用需要导包和创建对象。
Calendar提供了一个类方法getInstance用于获取Calendar对象,其日历字段已使用当前日期和时间初始化。
Calendar rightNow = Calendar.getInstance();
这就是Calendar的创建对象。
public int get (int field)
返回给定日历字段的值
import java.util.Calendar;
public class SimpleDateFormatDome {
public static void main(String[] args){
Calendar c = Calendar.getInstance();
int i = c.get(Calendar.YEAR);
int i1 = c.get(Calendar.MONTH)+1;
int i2 = c.get(Calendar.DATE);
System.out.println(i+"年"+i1+"月"+i2+"日");
}
}
2022年7月7日
进程已结束,退出代码 0
为啥Calendar.MONTH需要加个1,因为它是从0开始的。
public abstract void add(int field , int amount)
根据日历的规则,将指定的时间量添加或减去给定的日历字段
import java.util.Calendar;
public class SimpleDateFormatDome {
public static void main(String[] args){
Calendar c = Calendar.getInstance();
c.add(Calendar.YEAR,6);
c.add(Calendar.MONTH,6);
c.add(Calendar.DATE,6);
int i = c.get(Calendar.YEAR);
int i1 = c.get(Calendar.MONTH)+1;
int i2 = c.get(Calendar.DATE);
System.out.println(i+"年"+i1+"月"+i2+"日");
}
}
2029年1月13日
进程已结束,退出代码 0
为啥是2029年,2022加6不是2028嘛?因为月份我也加了6个月。
public final void set (int year, int month , int date)
设置当前日历的年月日
import java.util.Calendar;
public class SimpleDateFormatDome {
public static void main(String[] args){
Calendar c = Calendar.getInstance();
c.set(2018,7,6);
int i = c.get(Calendar.YEAR);
int i1 = c.get(Calendar.MONTH)+1;
int i2 = c.get(Calendar.DATE);
System.out.println(i+"年"+i1+"月"+i2+"日");
}
}
2018年8月6日
进程已结束,退出代码 0



