您的位置:首页 > 编程语言 > Java开发

Java常用API之Date类、DateFormat类、Calendar类浅显应用

2019-04-16 00:10 232 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/qq_43180566/article/details/89323887

这是我第一次写播客,用来记录自己学习Java的方向和进程,探索Java语言世界的奇妙之旅。
如果文中有错误的地方,希望前辈们可以指点一二。

常用API——Date类

1、Date类的概述

类Date用来表示特定的瞬间,可以精确到毫秒
实际应用可以用来获取当前系统的时间信息,精确到毫秒值

2、Date类常用的构造方法

Date()  获取当前系统时间
Date(long time) 根据指定的毫秒值创建日期对象

3、Date类常用方法

long getTime()
获取当前时间的毫秒值

4、时间的转换

1秒=1000毫秒
时间零点:1970-1-1 00:00:00

5、相关应用

import java.util.Date;
public class Demo01 {
public static void main(String[] args){
// 创建日期对象:当前系统时间
Date date = new Date();
//获取当前系统时间信息
System.out.println(date);
// 获得当前时间的毫秒值
System.out.println(date.getTime());

//将毫秒值转为时间
//毫秒值是唯一的,是单向性的
Date date2 = new Date(1555293724756L);
System.out.println(date2);
}

}

常用API——DateFormat类

1、DateFormat类的作用

1.将日期对象转换为字符串  Date==>String
2.将日期字符串转换为日期对象:String==>Date

2、如何创建一个DateFormat对象

DateFormat是一个抽象类,不能直接创建该类对象,只能创建子类对象
已知直接子类有:SimpleDateFormat
直接创建SimpleDateFormat对象,调用方法进行格式化操作即可。

3、SimpleDateFormat类常用的构造方法

SimpleDateFormat(String pattern)
根据日期模式创建日期格式化对象
日期模式
yyyy		年		2019
MM         	月		04
dd 			日		15
HH			时		23
mm			分		40
ss			秒		50

4、例子:将Date转成“xxxx年xx月xx日 xx时xx分xx秒”的格式

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Demo02{
public static void main(String[] args){
// 需求:将 Date 转成 "2019年09月15日 19时18分19秒"
// 获得日期对象
Date date = new Date();
// 创建日期格式化对象并指定日期模式
// DateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 将日期对象转换为字符串
String dateStr = sdf.format(date);
//输出
System.out.println(dateStr);
}}

6、使用DateFormat类的方法将日期字符串转换为日期对象

1.创建日期格式化对象并指定日期模式:SimpleDateFormat
2.调用日期格式化对象的方法将日期字符串转换为日期对象:Date parse(String dateStr)
注意事项:指定的日期模式和字符串日期模式要一致。

7、DateFormat类常用方法有两个

String format(Date date) 日期转字符串
Date parse(String str)  字符串转日期

例子:

public class Demo03 {
public static void main(String[] args) throws ParseException {
// 1. 日期字符串:String
String dateStr = "2007/12/26";
// 2. 创建日期格式化对象并指定日期模式:SimpleDateFormat
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
// 3. 调用日期格式化对象的方法将日期字符串转换为日期对象:Date parse(String dateStr)
Date date = sdf.parse(dateStr);
System.out.println(date);
}}

常用API——Calender类

1、Calender的作用

非常方便的可以获取到年月日时分秒,昨天,前天,明天,上个星期,上个月,前几年…
可以方便的调整时间

2、创建Calender

Calender是一个抽象的类,不能直接创建对象,只能创建子类对象
通过Calendar类静态方法创建日历类对象,该方法如下:
static Calendar getInstance() 获得日历对象

3、Calender类的常用方法

int get​(int field)
根据日历字段获得值
常用的日历字段:
年 Calendar.YEAR
月 Calendar.MONTH
日 Calendar.DAY_OF_MONTH
时 Calendar.HOUR
分 Calendar.MINUTE
秒 Calendar.SECOND

void set​(int field, int value)
* 修改指定日历字段的值为指定值value

void add​(int field, int amount)
* 将指定日历字段的值在当前值的基础上偏移一个值:amount
* 正数:向前偏移 +
* 负数:向后偏移 -

5、Calender注意事项

MONTH: 取值范围0到11  需要加1才是我们正确的月份
DAY_OF_WEEK: 1代表星期天

例子:

import java.util.Calendar;
public class Demo08 {
public static void main(String[] args){
// 获得日历对象
Calendar c = Calendar.getInstance(); // new GregorianCalendar();
System.out.println(c.get(Calendar.DAY_OF_WEEK));
// 获得年
int year = c.get(Calendar.YEAR);
// 获得月
int month = c.get(Calendar.MONTH) + 1;
// 获得日
int day = c.get(Calendar.DAY_OF_MONTH);
System.out.println(year+"-"+month+"-"+day);
System.out.println("----------------------");
// 将年份修改为2020年
c.set(Calendar.YEAR, 2020);
c.set(Calendar.MONTH, 4);

// 获得年
year = c.get(Calendar.YEAR);
// 获得月
month = c.get(Calendar.MONTH) + 1;

System.out.println(year+"-"+month+"-"+day);

System.out.println("----------------------");
// 将年份向后偏移1年
c.add(Calendar.YEAR, 2);
c.add(Calendar.MONTH, 12); // 0 到 11
// 获得年
year = c.get(Calendar.YEAR);
System.out.println(year+"-"+month+"-"+day);
}}

分享两个实际应用

1、计算一个人从出生到现在活了多少时间

分析:
1. 生日日期字符串:"1999-02-10"
2. 将生日字符串转换为日期对象:String --> Date
3. 获得出生时的毫秒值:long
4. 获得当前时间的毫秒值:long
5. 两个毫秒值相减:long
6. 计算天数
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Demo09 {
public static void main(String[] args)throws ParseException{
// 1. 生日日期字符串:"1999-02-10"
String birthdayStr = "1999-02-10";
// 2. 将生日字符串转换为日期对象:String --> Date
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date birthdayDate = sdf.parse(birthdayStr);
// 3. 获得出生时的毫秒值:long
long birthdayDateTime = birthdayDate.getTime();
// 4. 获得当前时间的毫秒值:long
Date currentDate = new Date();
long currentDateTime = currentDate.getTime();
// 5. 两个毫秒值相减:long
long distance = currentDateTime - birthdayDateTime;
// 6. 计算天数
System.out.println("活了"+(distance/1000/3600/24)+"天");
}}

2、计算指定年份的2月份的天数

分析:
1. 创建日历对象
2. 设置日历时间为指定年份的3月1号
3. 将日向后偏移1天:减一天(2月最后一天)
4. 获得当前月份的天数
import java.util.Calendar;
public class Demo10 {
public static void main(String[] args){
// 1. 创建日历对象
Calendar c = Calendar.getInstance();
// 2. 设置日历时间为指定年份的3月1号
c.set(2000, 2, 1);
// 3. 将日向后偏移1天:减一天(2月最后一天)
c.add(Calendar.DAY_OF_MONTH, -1);
// 4. 获得当前月份的天数
int day = c.get(Calendar.DAY_OF_MONTH);
if (day == 28){
System.out.println("平年");
} else {
System.out.println("闰年");
}
System.out.println(day);
}

}
3、计算500天之后的日期

public class Test03 {
public static void main(String[] args) {
//获取当前日历对象
Calendar c = Calendar.getInstance();
System.out.println(c.get(Calendar.DAY_OF_WEEK));
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
System.out.println(year+"年"+month+"月"+day+"日");
//获取500天后的日期
c.add(Calendar.DAY_OF_YEAR,500);
year = c.get(Calendar.YEAR);
month =c.get(Calendar.MONTH);
day = c.get(Calendar.DAY_OF_MONTH);
System.out.println(year+"年"+month+"月"+day+"日");

}}

写完了,这就是我今天一天所学到的东西,如果文中有错,请在下方留言,我会及时回复并且更改。谢谢各位前辈的指教和同辈的支持。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: