DataCalendar要不要了解一下
Posted javaurl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DataCalendar要不要了解一下相关的知识,希望对你有一定的参考价值。
Date
在Java中,有一个类叫做Date(java.util.Date), 这个类叫做日期类,但是Java中的Date类表示的是特定的时间瞬间, 精确到了毫秒。
构造方法:
- Date():使用空参构造方法创建的Date对象会以当前操作系统的时间构建一个Date。
- Date(long date):参数要传递一个long类型的毫秒值。 表示从1970年1月1日 0点0分0秒开始过了多少毫秒。
- 中国使用的是北京时间,北京时间是东八区,比标准时间快八个小时。 时间是从1970年1月1日 8点0分0秒开始的。
getTime方法
在Date类中,有一个方法叫做getTime,可以获取Date对象对应的毫秒值。
long getTime(): 获取Date对象表示的毫秒并返回。
使用方法 data的对象名.getTime();用long 类型接收
setTime方法
在Date类中,有一个方法叫做setTime,可以设置Date对象的毫秒值。
void setTime(long time):设置Date对象表示的时间(毫秒值)。 调用此方法后,Date对象表示的时间会发生改变。
使用方法 data的对象名.setTime();
DateFormat
format
/*
如果想要把一个Date对象转成一个指定格式的字符串,那么可以使用DateFormat类去实现。
DateFormat是一个抽象类,如果要用,需要使用子类SimpleDateFormat
构造方法:
SimpleDateFormat(String pattern): 参数需要传递一个字符串类型的模式。
举例:
要转成的格式: 2019年03月22日 10时17分54秒
对应的模式: yyyy年MM月dd日 HH时mm分ss秒
就是使用英语字母替换掉数字。
y:年
M:月
d:日
H:时
m:分
s:秒
其他的方法:
String format(Date date) :将参数Date对象格式化为一个字符串。并把这个字符串返回。
日期格式化的步骤:
1. 创建一个Date对象。
2. 创建一个SimpleDateFormat对象,在构造方法中给出指定的模式。
3. 调用SimpleDateFormat对象的format方法,将Date对象转成一个字符串。
*/
public class Demo {
public static void main(String[] args) {
//创建一个Date对象
Date date = new Date();
//2. 创建一个SimpleDateFormat对象,在构造方法中给出指定的模式。
//要转成的日期格式为: 2019年03月22日 10时17分54秒
//SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
//要转成的日期格式为: 2019-03-22 10:17:54
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//3. 调用SimpleDateFormat对象的format方法,将Date对象转成一个字符串。
String str = sdf.format(date);
System.out.println("str:" + str);
}
}
parse方法
/*
如果要把一个字符串转成一个Date对象,那么我们可以使用SimpleDateFormat去完成。
使用的方法:
Date parse(String source):将字符串转成(解析)一个Date对象并返回
使用步骤:
1. 定义一个字符串,表示时间。
2. 创建一个SimpleDateFormat对象, 参数位置指定一个模式。
3. 调用SimpleDateFormat的parse方法,将字符串转成一个Date对象。
注意:
1. 调用parse方法后需要抛异常。
解决方式: 把光标移动到红色波浪线上面,然后按alt + 回车,选择第一个。
2. SimpleDateFormat构造方法中传递的模式必须和要转换的字符串格式一致。否则会报错。
小结:
Date->String:格式化。 使用SimpleDateFormat的format方法去完成。
String->Date:解析。 使用SimpleDateFormat的parse方法去完成。
*/
public class Demo {
public static void main(String[] args) throws ParseException {
//1. 定义一个字符串,表示时间。
String str = "2019-03-22 10:27:13";
//2. 创建一个SimpleDateFormat对象, 参数位置指定一个模式。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
//3. 调用SimpleDateFormat的parse方法,将字符串转成一个Date对象。
Date date = sdf.parse(str);
//4. 输出date对象
System.out.println(date);
}
}
Calendar
getInstance方法
/*
在Date类中有很多方法都已经过时了,原因是因为在Calendar中有了更好的方法可以代替他们。
Calendar叫做日历类。 和Date一样,Calendar也可以表示精确的时间瞬间(精确到毫秒)
Calendar是一个抽象类, 如果要用,需要使用它的子类。
因为地区敏感性, Calendar的子类对象不能由我们自己去new,而是要调用Calendar的静态方法 getInstance进行获取。
Calendar中的方法:
static Calendar getInstance(): 获取一个Calendar子类对象, 然后把这个子类对象返回了。
获取Calendar对象的方式:
之前都是通过new的方式获取一个对象,而此时是通过Calendar的静态方法getInstance获取的 Calendar对象(真正是Calendar子类对象)
*/
public class Demo {
public static void main(String[] args) {
//通过Calendar的静态方法获取一个日历对象
Calendar c = Calendar.getInstance();
//进行输出
System.out.println(c);
}
}
get方法
/*
在Calendar中,有一个方法叫做get,可以获取到指定字段的值:
int get(int field): 参数field表示要获取哪个字段的值。
举例:
get(年): 获取年这个字段的值。
get(月): 获取月这个字段的值
get(日): 获取日这个字段的值。
get方法参数是int类型, 所以我们要使用数字表示对应的字段。
如果在get方法中传递数字的话,会大大的影响我们程序的可阅读性。
我们可以使用Calendar中的静态常量代替这些数字, 这些常量的常量名具有见名之意的效果, 每一个常量都表示一个数字。
注意:
Calendar中的月份是从0开始的范围是(0-11)。 Calendar中的月份比现实生活要少1
*/
public class Demo {
public static void main(String[] args) {
//获取一个日历对象
Calendar c = Calendar.getInstance();
//获取年的值进行输出
int year = c.get(Calendar.YEAR);
System.out.println(year);
//获取月的值进行输出
int month = c.get(Calendar.MONTH) + 1;
System.out.println(month);
//获取日的值进行输出
int day = c.get(Calendar.DATE);
System.out.println(day);
}
}
set方法
/*
在Calendar中有一个方法叫做set,可以给指定字段设置值。
void set(int field, int value): 可以给指定字段设置值。
参数field:表示要给哪个字段设置值。
参数value:表示要设置成什么值。
*/
public class Demo {
public static void main(String[] args) {
//获取一个日历对象
Calendar c = Calendar.getInstance();
//输出这个日历对象的年月日的值
System.out.println(c.get(Calendar.YEAR) + "-" + (c.get(Calendar.MONTH) + 1) + "-" + c.get(Calendar.DATE));
//使用set方法,给日历对象重新设置值
c.set(Calendar.YEAR, 2012);
c.set(Calendar.MONTH, 4); //表示的是现实生活中的5月
c.set(Calendar.DATE, 11);
//重写输出这个日历对象的年月日的值。
System.out.println(c.get(Calendar.YEAR) + "-" + (c.get(Calendar.MONTH) + 1) + "-" + c.get(Calendar.DATE));
}
}
add方法
/*
在Calendar中,有一个方法叫做add,可以对指定字段的值进行计算。
void add(int field, int amount): 可以对指定字段的值进行计算。
参数field: 表示要对哪个字段进行计算。
参数amount: 表示如何计算。 如果该参数是正数,那么就是加上该值。
如果该参数是负数,那么就是减去该值。
*/
public class Demo {
public static void main(String[] args) {
//获取一个日历对象
Calendar c = Calendar.getInstance();
//输出该日历对象的年月日的值。
System.out.println(c.get(Calendar.YEAR) + "-" + (c.get(Calendar.MONTH) + 1) + "-" + c.get(Calendar.DATE));
//使用add方法,对年进行计算, 加上2年
//c.add(Calendar.YEAR, 2);
//使用add方法对月进行计算
c.add(Calendar.MONTH, 10);
//重新输出
System.out.println(c.get(Calendar.YEAR) + "-" + (c.get(Calendar.MONTH) + 1) + "-" + c.get(Calendar.DATE));
}
}
getTime方法
/*
在Calendar中有一个方法叫做getTime,可以获取到Calendar对应的Date对象
Date getTime(): 获取Calendar对应的Date对象
*/
//获取一个日历对象
Calendar c = Calendar.getInstance();
//将这个日历对象转成一个Date对象。
Date date = c.getTime();
currentTimeMillis
/*
static long currentTimeMillis():获取当前操作系统的时间(以毫秒值表示的)
*/
public class Demo {
public static void main(String[] args) {
//调用System的currentTimeMillis获取当前的时间
long millis = System.currentTimeMillis();
System.out.println(millis);
}
}
以上是关于DataCalendar要不要了解一下的主要内容,如果未能解决你的问题,请参考以下文章