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个星期 */ } }