Date、Calender、 Math.Random对象
一、Date
1、类Date表示特定的瞬间,精准到毫秒。
2、类DateFormat是日期/时间格式化子类的抽象类,通过DateFormat的子类SimpleDateFormat方法来实现模式封装。然后调用format方法,指定Date对象格式化。
示例:
import java.sql.Date;
import java.text.SimpleDateFormat;
public class DateTest
{
public static void main(String[] args)
{
Date date = new Date(System.currentTimeMillis());
System.out.println(date);
//将模式封装到SimpleDateFormat对象中
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 E hh:mm:ss");
//调用format方法,让模式格式化指定Date对象。
String time = sdf.format(date);
System.out.println("time= " + time);
}
}
二、Calendar类
Calendar中文意思是日历,是Java中关于日期操作最平凡的一个类,下面主要介绍一下重要时间的获取,时间格式,及时间比较。
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class MyCalender
{
public static void main(String[] args) throws ParseException
{
// 完整显示日期时间
String str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS")).format(new Date());
print(str);
// 创建 Calendar 对象
Calendar calendar = Calendar.getInstance();
// 初始化 Calendar 对象,但并不必要,除非需要重置时间
calendar.setTime(new Date());
// 显示年份
int year = calendar.get(Calendar.YEAR);
print("YEAR is = " + String.valueOf(year));
// 显示月份 (从0开始, 实际显示要加一)
int MONTH = calendar.get(Calendar.MONTH);
print("MONTH is = " + (MONTH + 1));
// 今年的第 N 天
int DAY_OF_YEAR = calendar.get(Calendar.DAY_OF_YEAR);
print("DAY_OF_YEAR is = " + DAY_OF_YEAR);
// 本月第 N 天
int DAY_OF_MONTH = calendar.get(Calendar.DAY_OF_MONTH);
print("DAY_OF_MONTH = " + String.valueOf(DAY_OF_MONTH));
// 3小时以后
calendar.add(Calendar.HOUR_OF_DAY, 3);
int HOUR_OF_DAY = calendar.get(Calendar.HOUR_OF_DAY);
print("HOUR_OF_DAY + 3 = " + HOUR_OF_DAY);
// 当前分钟数
int MINUTE = calendar.get(Calendar.MINUTE);
print("MINUTE = " + MINUTE);
// 15 分钟以后
calendar.add(Calendar.MINUTE, 15);
MINUTE = calendar.get(Calendar.MINUTE);
print("MINUTE + 15 = " + MINUTE);
// 30分钟前
calendar.add(Calendar.MINUTE, -30);
MINUTE = calendar.get(Calendar.MINUTE);
print("MINUTE - 30 = " + MINUTE);
// 格式化显示
str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS")).format(calendar.getTime());
print(str);
// 重置 Calendar 显示当前时间
calendar.setTime(new Date());
str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS")).format(calendar.getTime());
print(str);
// 创建一个 Calendar 用于比较时间
Calendar calendarNew = Calendar.getInstance();
// 设定为 5 小时以前,后者大,显示 -1
calendarNew.add(Calendar.HOUR, -5);
print("时间比较:" + calendarNew.compareTo(calendar));
// 设定7小时以后,前者大,显示 1
calendarNew.add(Calendar.HOUR, +7);
print("时间比较:" + calendarNew.compareTo(calendar));
// 退回 2 小时,时间相同,显示 0
calendarNew.add(Calendar.HOUR, -2);
print("时间比较:" + calendarNew.compareTo(calendar));
//两个时间之间的天数
SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");
Date date= myFormatter.parse("2003-05-1");
Date mydate= myFormatter.parse("1899-12-30");
long day=(date.getTime()-mydate.getTime())/(24*60*60*1000);
print("2003-05-01 与 1899-12-30 之前相差天数: "+ day);
}
public static void print(Object obj)
{
System.out.println(obj);
}
}
三、Math.random()
1、Math.random()是令系统随机选取大于等于 0.0 且小于 1.0 的伪随机 double 值,
2、返回指定范围的随机数(m-n之间)的公式
Math.random()*(n-m)+m
3、示例:
/**
* Math.random()是令系统随机选取大于等于 0.0 且小于 1.0 的伪随机 double 值
* 返回指定范围的随机数(m-n之间)的公式
* Math.random()*(n-m)+m
*
* 本题演示:随机生成6位数的字符串小写字母
* @author Administrator
*
*/
public class MathRandom
{
public static void main(String[] args)
{
String result="";
for(int i=0;i<6;i++){
//生成97-122的int型的整型(97~122号为ASCII中26个小写英文字母)
int intValue = (int)(Math.random()*26+97);
//将intValue强制转化成char类型后接到resul后面
result = result + (char)intValue;
}
//输出字符串
System.out.println(result);
}
}