这是我参与11月更文挑战的第6天,活动详情查看:2021最后一次更文挑战
今天继续~
日期和时间的格式化编码
d - 月
h - 小时(12,A.M/P.M)
H - 小时(24)
m - 分钟
s - 秒数
S - 毫秒数
E - 星期
D - 天(365)
F - 一个月中的第几周的周几
w - 一年中的第几周
W - 一个月中的第几周
a - A.M/P.M标记
k - 小时
K - A.M/P.M
z - 时区
' - 文字定界符
" - 单引号
printf格式化日期
c - 包括全部日期和时间信息
F - "年-月-日"
D - "月-日-年"
r - "HH:MM:SS PM"格式(12)
T - "HH:MM:SS"格式(24)
R - "HH:MM"格式(24)
public static void main(String[] args) {
Date date = new Date();
System.out.printf("全部日期和时间信息:%tc%n",date);
//f的使用
System.out.printf("年-月-日格式:%tF%n",date);
//d的使用
System.out.printf("月/日/年格式:%tD%n",date);
//r的使用
System.out.printf("HH:MM:SS PM格式(12时制):%tr%n",date);
//t的使用
System.out.printf("HH:MM:SS格式(24时制):%tT%n",date);
//R的使用
System.out.printf("HH:MM格式(24时制):%tR",date); }
ps:%tx-时间类型 %n-换行用
将字符串解析为时间
- 运用SimpleDateFormat的parse方法来将字符串转化为时间
public static void main(String[] args) {
SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd");
String input = args.length == 0 ? "1818-11-11" : args[0];
System.out.print(input + " Parses as ");
Date t;
try {
t = ft.parse(input);
System.out.println(t);
}
catch (ParseException e) {
System.out.println("Unparseable using " + ft);
}
}
休眠(sleep)
- 使当前线程停止一段时间,将空间放出来供其他线程使用
Thread.sleep(1000*3); // 休眠3秒
测量时间
public static void main(String[] args) {
long start = System.currentTimeMillis( );
System.out.println(new Date( ) + "\n");
Thread.sleep(5*60*10);
System.out.println(new Date( ) + "\n");
long end = System.currentTimeMillis( );
long diff = end - start;
System.out.println("Difference is : " + diff);
}
ps:System.currentTimeMillis - new Date()就是调用了此方法,具体用处为获取时间,上述代码就是获取开始时间,休眠,获取结束时间,最后获取二者之间的间隔
Calendar类
创建
Calendar c = Calendar.getInstance();// 默认是当前日期
//创建一个代表2009年6月12日的Calendar对象
Calendar c1 = Calendar.getInstance();
c1.set(2009, 6 - 1, 12);// 设置指定日期
Calendar.YEAR - 年份
Calendar.MONTH - 月份
Calendar.DATE - 日期
Calendar.DAY_OF_MONTH - 日期
Calendar.HOUR - 小时(12)
Calendar.HOUR_OF_DAY - 小时(24)
Calendar.MINUTE - 分钟
Calendar.SECOND - 秒
Calendar.DAY_OF_WEEK - 星期几
public void set(int field,int value) - 设置时间(字段,值)
c1.set(Calendar.DATE,10);
添加时间
c1.add(Calendar.DATE, 10);
获取时间
int year = c1.get(Calendar.YEAR);
GregorianCalendar类
- Calendar类的具体实现
void add(int field, int amount) - 将指定的时间添加到指定的时间字段当中
protected void computeFields() - 转换毫秒值为时间域值(时间戳转换)
protected void computeTime() - 转换时间域值为毫秒值(时间戳转换)
boolean equals(Object obj) - 将对象与时间比较
int get(int field) - 获取时间值
int getActualMaximum(int field) - 返回当前指定时间的最大值
int getActualMinimum(int field) - 返回当前指定时间的最小值
int getGreatestMinimum(int field) - 返回此 GregorianCalendar 实例给定日历字段的最高的最小值
Date getGregorianChange() - 获得格里高利历的更改日期
int getLeastMaximum(int field) - 返回此 GregorianCalendar 实例给定日历字段的最低的最大值
int getMaximum(int field) - 返回此 GregorianCalendar 实例的给定日历字段的最大值
Date getTime() - 获取当前时间
long getTimeInMillis() - 获取用长整型表示的日历的当前时间
TimeZone getTimeZone() - 获取时区
int getMinimum(int field) - 返回给定字段的最小值
int hashCode() - 重写hashCode
boolean isLeapYear(int year) - 确认给定年份是否是闰年
void roll(int field, boolean up) - 在给定的时间字段上添加或减去(上/下)单个时间单元,不更改更大的字段
void set(int field, int value) - 设置时间字段
void set(int year, int month, int date) - 设置年月日的值
void setGregorianChange(Date date) - 设置 GregorianCalendar 的更改日期
void setTime(Date date) - 用给定的日期设置Calendar的当前时间
void setTimeInMillis(long millis) - 用给定的long型毫秒数设置Calendar的当前时间
void setTimeZone(TimeZone value - 将时区设置成给定的时区
String toString() - 返回字符串
今天就学到这,晚安~