现在的位置: 首页 > 综合 > 正文

Java基础复习:日期与时间

2013年04月27日 ⁄ 综合 ⁄ 共 1834字 ⁄ 字号 评论关闭

首先通过一个例子来简单回顾Java中与日期和时间相关的类:

package day7;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * Date类:处理日期,时间,该类中的大部分方法已经过时,不推荐使用
 * 从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换
 * 使用 DateFormat 类来格式化和解析日期字符串
 * 常用构造方法:Date()分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)
 * 
 * 未过时的方法:
 * boolean after(Date when) 测试此日期是否在指定日期之后
 * boolean before(Date when)测试此日期是否在指定日期之前
 */
public class DateDemo {
	public static void main(String[] args) {
		//从1970年1月1日,00:00开始到现在的毫秒数
		System.out.println(System.currentTimeMillis());//1368598309172
		Date date = new Date();
		System.out.println(date);//Wed May 15 14:13:08 CST 2013
		
		/*
		 * 但是这种日期格式并不符合我们的使用习惯,如何显示为 2013-05-15 14:13:08 周一
		 * 我们可以使用java.text.SimpleDateFormat用来格式化日期
		 * SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类
		 * 它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化
		 */
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-M-d HH:mm:ss E");
		//将日期格式使用指定的模式格式化为字符串
		//date --> string
		String dd = sdf.format(date);
		System.out.println(dd);//2013-5-15 14:19:53 星期三
		
		/*
		 * 解析日期字符串:String时间 --> Date
		 *  Date parse(String text) 解析字符串的文本,生成 Date。 
		 */
		
	}
}

 

练习题:写两个方法

1)按某种时间格式来输出指定的String类型的时间(使用format)

2)把某种时间格式的String时间转成Date类型时间(使用parse)

package day7;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateTestDemo {
	public static void main(String[] args) {
		Date date = new Date();
		String str = dateToString(date);
		System.out.println(str);//2013-05-15 14:34:50 星期三
		
		String str1 = "2013-05-20";
		Date date2 = stringToDate(str1);
		System.out.println(date2);
	}
	
	/**
	 * 按"2010-01-01 12:00:20  星期一"的时间格式来输出指定的String类型时间
	 * @param date 传入Date对象
	 * @return 返回转换后的字符串
	 */
	public static String dateToString(Date date){
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss E");
		String str = sdf.format(date);
		return str;
	}
	
	public static Date stringToDate(String str){
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		Date date = null;
		try {
			date = sdf.parse(str);
			return date;
		} catch (ParseException e) {
			e.printStackTrace();
		}
		return null;
	}
}

 常用的日期模式字母:

y:年

M:月

d:月中的天数

D:年中的天数

E:星期中的天数

H:时

m:分

s:秒

【上篇】
【下篇】

抱歉!评论已关闭.