Java date类获取时间

Java date类获取时间

在开发中经常会用到时间和日期,System类的currentTimeMillis方法可以返回当前时间的毫秒值,除此之外 Date 类也可以获取当前时间信息,精确到毫秒。继续查阅Date类的描述,发现Date拥有多个构造函数,只是部分已经过时,但是其中有未过时的构造函数可以把毫秒值转成日期对象。

//获取当前时间的毫秒值
long time = System.currentTimeMillis();
//创建日期对象,把当前的毫秒值转成日期对象
Date date = new Date(time);
System.out.println(date);//Wed Dec 11 16:42:06 CST 2013

可是将毫秒值转成日期后,输出的格式不利于我们阅读,继续查阅API,Date中有getYear、getMouth等方法,可以他们已经过时,继续往下查阅,看到了toString方法,点开查阅原来是上面打印的date就是默认调用了这个toString方法,并且在这个方法下面还有让我们参见toLocaleString方法,点进去,这个方法又过时了,从 JDK 1.1 开始,由 DateFormat.format(Date date) 取代。

既然这个方法被DateFormat.format(Date date) 取代,那么就要去查阅DateFormat类。

DateFormat类介绍

查阅DateFormat类介绍:DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。日期/时间格式化子类(如 SimpleDateFormat)允许进行格式化(也就是日期 -> 文本)、解析(文本-> 日期)和标准化。

原来这个类可以帮我们完成日期和文本之间的转换。继续阅读API,DateFormat 可帮助进行格式化并解析任何语言环境的日期。对于月、星期,甚至日历格式(阴历和阳历),其代码可完全与语言环境的约定无关。要格式化一个当前语言环境下的日期,可使用某个静态工厂方法: myString = DateFormat.getDateInstance().format(myDate);

// 获取日期格式器对象,在获取格式器对象时可以指定风格,风格包括 FULL、LONG、MEDIUM 和 SHORT
DateFormat format = DateFormat.getDateInstance(DateFormat.LONG);
//对日期进行格式化
String str_time = format.format(date);
System.out.println(str_time);//2013年12月11日

Calendar类介绍

我们可以通过Date获取到日期对象,使用DateFormat方法可以把日期进行格式化,可我们想获取当前日期对应的具体的年,具体的月,具体的日,等信息,怎么获取呢?

找到Date继续查阅,其中有getYear等方法,只是这些方法过时了,并且这些方法的描述中告诉我们参加Calendar类。

查阅Calendar类的API描述,发现原来Calendar类是专门用于描述日历的类,它中维护了一个map集合,在这个集合中存放着所有和日期相关的信息。

public class DateDemo {
	public static void main(String[] args) {
		//获取日历对象
		Calendar c = Calendar.getInstance();
		System.out.println(c);//打印出了一个map集合,其中描述日期的所有信息
		//获取年
		int year = c.get(Calendar.YEAR);
		//获取月,月是从0开始计算的
		int mouth = c.get(Calendar.MONTH)+1;
		//获取日
		int day = c.get(Calendar.DAY_OF_MONTH);
		//获取星期,由于老外们把星期日当作一周的第一天,所有星期日 返回对应的数字为1
		String week = getWeek(c.get(Calendar.DAY_OF_WEEK));
		System.out.println(year+"年"+mouth+"月"+day+"日"+week);
		
	}

	public static String getWeek(int i) {
		if(i<0 || i>7){
			throw new RuntimeException(i+"没有对应的星期");
		}
		String[] weeks = {"",星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
		return weeks[i];
	}
}
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值