Date日期类
Date表示特定的时间,精确到毫秒;
构造方法:
public Data()
public Date(long date)
常用方法:
public long getTime()
public void setTime(long time)
public Boolean before(Date when)
public Boolean after(Date when)
public int compareTo(Date anotherDate)
public String toString()
SimpleDateFormat日期格式类
DateFormat是日期/时间格式化,抽象类,它以与语言无关的方式格式化并分析日期或时间;
日期/时间格式化子类(如SimpleDateFormat)允许进行格式化(也就是日期->文本)、分析(文本->日期);
构造方法:
public SimpleDateFormat()
public SimpleDateFormat(String pattem)
常用方法:
public final String format(Date date)
public Date parse(String source)
import java.util.Date;
import java.text.DateFormat;
import java.util.Locale;
import java.text.SimpleDateFormat;
public class DateDemo{
public static void main(String []args){
Date date=new Date();
//输出默认格式
System.out.println(date);//Thu Mar 24 21:42:23 CST 2016
//返回自1970年1月1日以来的毫秒数
System.out.println(date.getTime());//1458826943206
//设置时间
date.setTime(1458826666666L);
System.out.println(date);//Thu Mar 24 21:37:46 CST 2016
System.out.println("--------------分割线--------------"); DateFormat df1=null;
DateFormat df2=null;
df1=DateFormat.getDateInstance();
df2=DateFormat.getDateTimeInstance();
System.out.println("Date:"+df1.format(date));//Date:2016-3-24
System.out.println("DateTime:"+df2.format(date));//DateTime:2016-3-24 21:37:46
System.out.println("--------------分割线--------------"); DateFormat df3=null;
df3=DateFormat.getDateInstance(DateFormat.FULL,new Locale("zh","CN"));
System.out.println("Date:"+df3.format(date));//Date:2016年3月24日 星期四
df3=DateFormat.getDateInstance(DateFormat.SHORT,new Locale("zh","CN"));
System.out.println("Date:"+df3.format(date));//Date:16-3-24
df3=DateFormat.getDateInstance(DateFormat.LONG,new Locale("zh","CN"));
System.out.println("Date:"+df3.format(date));//Date:2016年3月24日
System.out.println("--------------分割线--------------"); DateFormat df4=null;
df4=DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL,new Locale("zh","CN"));
System.out.println("Date:"+df4.format(date));//Date:2016年3月24日 星期四 下午09时37分46秒 CST
System.out.println("--------------分割线--------------"); String strDate="2016-03-24 21:30:36.456";
Date d=null;
SimpleDateFormat sdf1=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
SimpleDateFormat sdf2=new SimpleDateFormat("yyyy年MM月dd日 HH-mm-ss.SSS");
try{
d=sdf1.parse(strDate);//把日期字符串中的日期部分抽取出来生成Date对象
}
catch(Exception ex){
}
System.out.println(d);//Thu Mar 24 21:30:36 CST 2016 String str=sdf2.format(d);//把日期按指定的模板格式格式化输出为字符串
System.out.println(str);//2016年03月24日 21-30-36.456
}
}
Calendar日历类
Calendar类是一个抽象类,为特定瞬间与一组诸如YEAR,MONTH,DAY_OF_MONTH,HOUR等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间1970年1月1日的00:00:00.000)的偏移量;
与其他语言环境敏感类一样,Calendar提供了一个类方法getInstance,以获得此类型的一个通用的对象。Calendar的getInstance方法返回了一个Calendar对象,其日历字段已由当前日期和时间初始化;
常用方法:
public static Calendar getInstance()
public final Date getTime()
public final void setTime(Date date)
public int get(int field)
public final void set(int year,int month,int day)
public Boolean before(Object when)
public Boolean after(Object when)
public int compareTo(Calendar anotherCalendar)
import java.util.Calendar;
public class CalendarDemo{
public static void main(String []args){
Calendar calendar=Calendar.getInstance();
//System.out.println(calendar);//返回了所有日期相关对象
System.out.println(calendar.get(Calendar.YEAR));//当前年
System.out.println(calendar.get(Calendar.MONTH)+1);//当前月,从0开始,所以要+1
System.out.println(calendar.get(Calendar.DATE));//当前日
System.out.println(calendar.get(Calendar.HOUR));//当前小时 12小时制
System.out.println(calendar.get(Calendar.HOUR_OF_DAY));//当前小时 24小时制
System.out.println(calendar.get(Calendar.MINUTE));//当前分
System.out.println(calendar.get(Calendar.SECOND));//当前秒 System.out.println("--------------分割线--------------");
System.out.println(calendar.getTimeInMillis()); calendar.set(Calendar.YEAR,2015);
//System.out.println(calendar);//YEAR变为2015
}
}
Math数学工具类
Math类包含用于执行基本数学运算的方法,如绝对值、对数、平方根和三角函数、它是一个final类,其中定义的都是一些常量和静态方法;
常用方法:
public static double sqrt(double a)
public static double ceil(double a)
public static double floor(double a)
public static double pow(double a,double b)
public static long round(double a)
public static int round (float a)
public static double random()
Random随机数类
Java中,有三种产生随机数方法
① 通过System.currentTimeMillis()来获取一个当前时间毫秒数的long型数字;
② 通过Math.random()返回一个0到1之间的double值;
③ 通过Random类来产生一个随机数,这是专业的Random工具类,功能强大;
Random类中实现的随机数算法是伪随机,即有规则的随机。随机时,随机算法的起源数字称为种子数(seed),在种子数的基础上进行一定的变换,从而产生需要的随机数字。相同种子数的Random对象,相同次数生成的随机数字相同;
两个构造方法:
public Random()
public Random(long seed)
常用方法:
public void nextBytes(byte[] bytes)
public int nextInt()
public int nextInt(int n)
public boolean nextBoolean()
public float nextFloat()
public double nextDouble()
import java.util.Random;
public class MathRandomDemo{
public static void main(String []args){
//返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数
System.out.println(Math.floor(10.55));//10.0
//返回最小的(最接近负无穷大)double 值,该值大于等于参数,并等于某个整数。
System.out.println(Math.ceil(-10.55));//-10.0
//返回第一个参数的第二个参数次幂的值。
System.out.println(Math.pow(2,3));//8.0
//返回最接近参数的 int。(四舍五入)
System.out.println(Math.round(10.6));//11
//随机数 [0,1)
System.out.println(Math.random()); System.out.println("--------------分割线--------------"); //随机数
Random random=new Random();
System.out.println(random.nextInt());//产生一个整数(不同)
System.out.println(random.nextInt(5));//产生一个0-4之间的整数
System.out.println(random.nextBoolean());//boolean值
System.out.println(random.nextDouble());
System.out.println(random.nextFloat());
//带种子数的随机数
Random random2=new Random(10);
System.out.println(random2.nextInt());//产生一个整数(每次执行都相同) Random random3=new Random(System.currentTimeMillis());//获得毫秒数
System.out.println(random3.nextInt());
}
}