package com.test.datetime;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
*
* @Description 有关Java获取当前的时间
* @author HackerD
* @version 1.0
* @CreateAt 2013-5-30 下午6:10:49
*/
public class TestDateTime {
public static void main(String[] args) {
/**
* 在 JDK 1.1 之前,类 Date 有两个其他的函数。它允许把日期解释为年、月、日、小时、分钟和秒值。
* 它也允许格式化和解析日期字符串。不过,这些函数的 API 不易于实现国际化。从 JDK 1.1 开始,
* 应该使用 Calendar 类实现日期和时间字段之间转换,使用 DateFormat 类来格式化和解析日期字符串。
* Date 中的相应方法已废弃。
*/
Date date=new Date();
System.out.println(date.toString());//结果:Thu May 30 18:13:24 CST 2013
//上面的结果不是你想要的吧,借助DateFormat就可以获得你想要的各种格式
DateFormat dateFormat=DateFormat.getDateInstance();//默认语言环境的默认格式化风格
System.out.println(dateFormat.format(date));//结果:2013-5-30
//格式化风格包括 FULL、LONG、MEDIUM 和 SHORT
dateFormat=DateFormat.getDateInstance(DateFormat.FULL);
System.out.println(dateFormat.format(date));//结果:2013年5月30日 星期四
dateFormat=DateFormat.getDateInstance(DateFormat.LONG);
System.out.println(dateFormat.format(date));//结果:2013年5月30日
dateFormat=DateFormat.getDateInstance(DateFormat.MEDIUM);
System.out.println(dateFormat.format(date));//结果:2013-5-30
dateFormat=DateFormat.getDateInstance(DateFormat.SHORT);
System.out.println(dateFormat.format(date));//结果:13-5-30
//获取日期/时间格式器
dateFormat=DateFormat.getDateTimeInstance();
System.out.println(dateFormat.format(date));//结果:2013-5-30 18:36:51
dateFormat=DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL);
System.out.println(dateFormat.format(date));//结果:2013年5月30日 星期四 下午06时38分36秒 CST
dateFormat=DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG);
System.out.println(dateFormat.format(date));//结果:2013年5月30日 下午06时39分07秒
dateFormat=DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM);
System.out.println(dateFormat.format(date));//结果:2013-5-30 18:39:25
dateFormat=DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.SHORT);
System.out.println(dateFormat.format(date));//结果:13-5-30 下午6:39
//获取为日期和时间使用 SHORT 风格的默认日期/时间格式器。
dateFormat=DateFormat.getInstance();
System.out.println(dateFormat.format(date));//结果:13-5-30 下午6:41
//获取时间格式器,该格式器具有默认语言环境的默认格式化风格
dateFormat=DateFormat.getTimeInstance();
System.out.println(dateFormat.format(date));//结果:18:42:10
dateFormat=DateFormat.getTimeInstance(DateFormat.FULL);
System.out.println(dateFormat.format(date));//结果:下午06时42分41秒 CST
//DateFormat的子类SimpleDateFormat,时间格式你说了算。。
dateFormat=new SimpleDateFormat("yyyy/MM/dd");
System.out.println(dateFormat.format(date));//结果:2013/05/30
dateFormat=new SimpleDateFormat("MM/dd/yyyy");
System.out.println(dateFormat.format(date));//结果:05/30/2013
dateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(dateFormat.format(date));//结果:2013-05-30 19:27:29
dateFormat=new SimpleDateFormat("h:mm a");
System.out.println(dateFormat.format(date));//结果:7:29 下午
//更多格式 参考API
/**
* Calendar类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等
* 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。
*/
Calendar ca = Calendar.getInstance();
int year = ca.get(Calendar.YEAR);//获取年份
int month=ca.get(Calendar.MONTH);//获取月份 从0开始,即1月份为0以此类推。
int day=ca.get(Calendar.DATE);//获取日
int hour=ca.get(Calendar.HOUR);//小时
int minute=ca.get(Calendar.MINUTE);//分
int second=ca.get(Calendar.SECOND);//秒
int dayOfWeek = ca.get(Calendar.DAY_OF_WEEK);
int weekOfYear = ca.get(Calendar.WEEK_OF_YEAR);
int weekOfMonth=ca.get(Calendar.WEEK_OF_MONTH);
System.out.println("用Calendar.getInstance().getTime()方式显示时间: " + ca.getTime());
System.out.println("用Calendar获得日期是:" + year +"年"+ month +"月"+ day + "日");
System.out.println("用Calendar获得时间是:" + hour +"时"+ minute +"分"+ second +"秒");
System.out.println("今天是一星期中的第"+dayOfWeek+"天");//显示今天是一周的第几天(星期天是一星期中的第一天)
System.out.println("今天是一年中的第"+weekOfYear+"个星期");
System.out.println("今天是当前月的第"+weekOfMonth+"个星期");
/**
* 以上的运行结果:
* 用Calendar.getInstance().getTime()方式显示时间: Thu May 30 19:32:30 CST 2013
* 用Calendar获得日期是:2013年4月30日
* 用Calendar获得时间是:7时32分30秒
* 今天是一星期中的第 5天
* 今天是一年中的第22个星期
* 今天是当前月的第5个星期
*/
}
}