该篇博客目录
1、Date类
2、SimpleDateFormat类
3、Calendar类
4、Math类
这次介绍这几个常用到的类,当然我在博客中提到的只是部分常用方法,还有部分方法如果需要可以去看官方的api
一、Date类
1、功能
获取当前时间,精确到毫秒
2、构造方法
- public Date()
- 根据当前的默认毫秒值创建日期对象
public Date(long date)
根据给定的毫秒值创建日期对象(1970年开始)
package hhh; import java.util.Date; public class my_hello_world { public static void main(String[] args) { // TODO Auto-generated method stub Date obj=new Date(); System.out.println("当前时间"+obj); long time=3600000;//毫秒为单位,这里相当于1小时 Date obj2=new Date(time); System.out.println("所得时间"+obj2); } } //输出: //当前时间Sat Jan 27 19:03:58 CST 2018 //所得时间Thu Jan 01 09:00:00 CST 1970
3、Date类的成员方法
- public long getTime()
- 获取时间,以毫秒为单位(Date转换为毫秒值)
public void setTime(long time)
设置时间(把一个毫秒值转换成Date)
package ddd; import java.util.Date; public class Date_test { public static void main(String[] args) { // TODO Auto-generated method stub Date d=new Date(); long m; m=d.getTime();//Date转换为毫秒值 System.out.println(m); d.setTime(10000);//毫秒值转换为Date System.out.println(d); } } //输出: //1517212122616 //Thu Jan 01 08:00:10 CST 1970
通过对Date的了解可以看出,Date输出的时间格式不是很友好,所以如果需要按自己指定的格式进行显示们就要用到SimpleDateFormat类
二、SimpleDateFormat类
1、概述及作用
SimpleDateFormat类是DateFormat类(抽象类)的子类
作用:对日期时间进行格式化(如:可以将日期转换为指定格式的文本,也可以将文本转换为日期)
2、SimpleDateFormat类构造方法(这里举常用的哈)
- public SimpleDateFormat()
- 用默认的模式和默认语言环境的日期格式符号构造
- public SimpleDateFormat(String pattern)
- 用给定的模式和默认语言环境的日期格式符号构造
3、给定模式的参数字符串书写
例:”yyyy年MM月dd日 HH:mm:ss”==>2018年01月29日 18:04:20
4、SimpleDateFormat成员方法
- public final String format(Date date)
- Date-String(格式化)(将日期转换为指定文本格式)
- public Date parse(String source)
- String-Date(解析)(将文本转换为日期)
a、format方法
package ddd;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Date_test {
public static void main(String[] args) {
// TODO Auto-generated method stub
//创建Date对象表示当前时间
Date d=new Date();
//创建SimpleDateFormat对象,指定目标格式
SimpleDateFormat ff=new SimpleDateFormat("YYYY年MM月dd日 HH:mm:ss");
//调用format()方法,格式化时间,转换为指定格式的字符串
String today=ff.format(d);
System.out.println(today);
}
}
b、parse方法
package ddd;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Date_test {
public static void main(String[] args) throws ParseException {
// TODO Auto-generated method stub
String today="2018年01月29日 17:16:36";
SimpleDateFormat ff=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");//这里的格式需要与上面的字符
串格式相同
Date date=ff.parse(today);
System.out.println(date);
}
}
5、关于format和parse的一个Demo
package ddd;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Date_test {
public static void main(String[] args) throws ParseException {
// TODO Auto-generated method stub
//使用format方法
SimpleDateFormat sdf1=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
SimpleDateFormat sdf2=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
SimpleDateFormat sdf3=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d=new Date();
System.out.println(sdf1.format(d));
System.out.println(sdf2.format(d));
System.out.println(sdf3.format(d));
//使用parse方法
String t="2018-01-29 18:21:20";
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date f=sdf.parse(t);
System.out.println(f);
}
}
6、Tip
- 调用SimpleDateFormat对象的parse()方法时可能会出现转换异常,即ParseException,因此需要异常处理
- 使用Date类要导入java.util包,使用SimpleDateFormat要导入java.text包
三、Calendar类
1、概述
Calendar类是一个抽象类,它为特定瞬间与一组诸如YEAR、MONTH、DAY_OF_MONTH、HOUR(例如Calendar.MONTH都是Calendar类中定义的静态常量)等日历字段之间的转换提供了一些方法,并为操作日历字段(如获得下星期是日期提供了一些方法,瞬间可用毫秒值表示)
2、创建Calendar对象
该类通过调用getInstance()静态方法获取一个Calendar对象,此对象已由当前日期时间初始化,即默认代表当前时间
Calendar c=Calendar.getInstance();
3、成员方法
public static Calendar getInstance()
- 创建Calendar对象
public int get(int field)
- 返回给定日历字段的值。日历类中的每个日历字段都是静态成员变量,且都是int类型
public void add(int field int amount)
- 根据给定的日历字段和对应的时间,来对当前日历进行操作
public final void set(int year,int month,int date)
- 设置当前日历的年月日
public final Date getTime()
- 用来获取Date对象,完成Calendar和Date的转换
public long getTimeInMillis()
- 返回此Calendar的时间值,以毫秒为单位(和Date类的getTime方法类似)
4、常用成员方法实例Demo
package ddd;
import java.util.Calendar;
import java.util.Date;
public class Date_test {
public static void main(String[] args){
// TODO Auto-generated method stub
//get方法
Calendar d=Calendar.getInstance();
int year=d.get(Calendar.YEAR);
int month=d.get(Calendar.MONTH);
int day=d.get(Calendar.DAY_OF_MONTH);
System.out.println(year+"-"+(month+1)+"-"+day);
//add方法
Calendar f=Calendar.getInstance();
f.add(Calendar.YEAR, -1);
int year1=f.get(Calendar.YEAR);
System.out.println(year1);
f.add(Calendar.YEAR, 2);
int year2=f.get(Calendar.YEAR);
System.out.println(year2);
//set方法
Calendar c=Calendar.getInstance();
c.set(2019,2,2);
int year3=c.get(Calendar.YEAR);
int month1=c.get(Calendar.MONTH);
int day1=c.get(Calendar.DAY_OF_MONTH);
System.out.println(year3+"-"+(month1+1)+"-"+day1);
//getTime方法
Calendar k=Calendar.getInstance();
Date date=k.getTime();//将Calendar对象转换为Date对象
System.out.println("当前时间:"+date);
//getTimeInMillis方法
Long time=k.getTimeInMillis();//获取当前毫秒值
System.out.println(time);
}
}
四、Math类
1、概述
Math类包含用于执行基本数学运算的方法(注:Math类所有的方法都是静态方法,所以使用该类的方法,可以直接使用下面的方式)
类名.方法名()==>Math.round();
2、Math类的常用方法
3、常用方法实例Demo
package hhh;
import java.util.Arrays;
public class my_hello_world {
public static void main(String[] args) {
// TODO Auto-generated method stub
double a=12.81;
//强制类型转换
int psas=(int)a;
System.out.println("强制类型转换"+psas);
//调用round方法,四舍五入
long popo=Math.round(a);
System.out.println("四舍五入"+popo);
//调用floor方法,返回小于参数的最大整数
double pqpq=Math.floor(a);
System.out.println("floor"+pqpq);
//调用ceil方法,返回大于参数的最小整数
double pppp=Math.ceil(a);
System.out.println("ceil"+pppp);
//调用random方法,返回[0,1)之间的随机数浮点数
double plpl=Math.random();
System.out.println("随机数"+plpl);
//产生[0,99)之间的随机整数
int pdpd=(int)(Math.random()*99);
System.out.println("产生[0,99)之间随机数"+pdpd);
}
}
4、练习:定义一个包含10个元素的整形数组,通过随机产生10以内的随机数,给数组中的每个元素赋值,并输出结果
int nums[]= new int[10];
for(int i=0;i<nums.length;i++)
{
int x=(int)(Math.random()*10);
nums[i]=x;
}
//使用foreach循环输出数组中的元素
for(int element: nums)
{
System.out.print(element+" ");
}