import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class Test
{
public Test()
{
}
public static void main(String[] args)
{
//java.sql.Date和 java.util.Date
// 共同点:它都有getTime方法返回毫秒数,可以直接构建
// 不同点:1、java.sql.Date是针对SQL语句使用的,它只包含日期而没有时间部分,般在读写数据库的时候用,PreparedStament的setDate()的参数和ResultSet的getDate()方法的都是java.sql.Date
// java.util.Date是在除了SQL语句的情况下面使用,一般是日常日期字段
// java.util.Date 是 java.sql.Date 的父类
// 即:继承关系:java.lang.Object --》 java.util.Date --》 java.sql.Date
Date d=new Date();//底层代码取系统时间毫秒数
// Date 和 Calendar
// 起始最明显的就是.前者是日期.后者是日历..就好比你家里的挂钟和挂历了..
// 同样是对时间的操作.但是前者的粒度细些时间控制会比较方便..后者对日期的控制会比较方便..主要就是 日期.. 日历...
// 前者操作时间,时分秒,后者控制年月日.
//Date的 equals方法
/* public boolean equals(Object obj) {
return obj instanceof Date && getTime() == ((Date) obj).getTime();
}*/
// 完整显示今天日期时间
String str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS")).format(new Date());
System.out.println(str);
Date date1 = new Date();
SimpleDateFormat dateFormat1 = new SimpleDateFormat("EEEE-MMMM-dd-yyyy");
System.out.println(dateFormat1.format(date1));
// 创建 Calendar 对象
Calendar calendar = Calendar.getInstance();
try
{
// 对 calendar 设置时间的方法
// 设置传入的时间格式
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-M-d H:m:s");
// 指定一个日期
Date date = dateFormat.parse("2013-6-1 13:24:16");
// 对 calendar 设置为 date 所定的日期
calendar.setTime(date);
// 按特定格式显示刚设置的时间
str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS")).format(calendar.getTime());
System.out.println(str);
}
catch (ParseException e)
{
e.printStackTrace();
}
// 或者另一种设置 calendar 方式
// 分別为 year, month, date, hourOfDay, minute, second
calendar = Calendar.getInstance();
calendar.set(2013, 1, 2, 17, 35, 44);
str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS")).format(calendar.getTime());
System.out.println(str);
//Calendar 和Date 转化
// Calendar 取得当前时间的方法
// 初始化 (重置) Calendar 对象
calendar = Calendar.getInstance();
// 或者用 Date 来初始化 Calendar 对象
calendar.setTime(new Date());
str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS")).format(calendar.getTime());
System.out.println(str);
// 显示年份
int year = calendar.get(Calendar.YEAR);
System.out.println("year is = " + String.valueOf(year));
// 显示月份 (从0开始, 实际显示要加一)
int month = calendar.get(Calendar.MONTH);
System.out.println("month is = " + (month + 1));
// 本周几 (星期天开始)
int week = calendar.get(Calendar.DAY_OF_WEEK);
System.out.println("week is = " + ((week-1)==0?"天":(week-1)));
// 今年的第 N 天
int DAY_OF_YEAR = calendar.get(Calendar.DAY_OF_YEAR);
System.out.println("DAY_OF_YEAR is = " + DAY_OF_YEAR);
// 本月第 N 天
int DAY_OF_MONTH = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println("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);
System.out.println("HOUR_OF_DAY + 3 = " + HOUR_OF_DAY);
// 当前分钟数
int MINUTE = calendar.get(Calendar.MINUTE);
System.out.println("MINUTE = " + MINUTE);
// 15 分钟以后
calendar.add(Calendar.MINUTE, 15);
MINUTE = calendar.get(Calendar.MINUTE);
System.out.println("MINUTE + 15 = " + MINUTE);
// 30分钟前
calendar.add(Calendar.MINUTE, -30);
MINUTE = calendar.get(Calendar.MINUTE);
System.out.println("MINUTE - 30 = " + MINUTE);
// 格式化显示
str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS")).format(calendar.getTime());
System.out.println(str);
// 重置 Calendar 显示当前时间
calendar.setTime(new Date());
str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS")).format(calendar.getTime());
System.out.println(str);
// 创建一个 Calendar 用于比较时间
Calendar calendarNew = Calendar.getInstance();
// 设定为 5 小时以前,后者大,显示 -1
calendarNew.add(Calendar.HOUR, -5);
System.out.println("时间比较:" + calendarNew.compareTo(calendar));
// 设定7小时以后,前者大,显示 1
calendarNew.add(Calendar.HOUR, +7);
System.out.println("时间比较:" + calendarNew.compareTo(calendar));
// 退回 2 小时,时间相同,显示 0
calendarNew.add(Calendar.HOUR, -2);
System.out.println("时间比较:" + calendarNew.compareTo(calendar));
}
}