日期时间相关
Date
1.常用构造方法
Date d = new Date() //获取系统当前时间
2.常用成员方法
getTime() //获取当前时间的毫秒值,以1970/1/1为参照
Calender
Calender是一个抽象类,不能实例化对象,通过调用getInstance();方法获得一个实例对象
Calendar rightNow = Calendar.getInstance();
使用相关获取年月日方法查询帮助文档
Date和String 的相互转化
使用格式化日期类SimpleDateFormat
1.Date转化成String ,属于格式化的过程,调用format方法
public static String datetoString(Date d,String format){
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.format(d);
}
2.String转化成Date,属于解析,调用parse方法
public static Date StringtoDate(String s,String format) throws ParseException{
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.parse(s);
}
注意:不管哪个方向的转化,创建SimpleDateFormat对象时,都要把格式作为参数传递
日期格式化
在之前的博客中我们使用到了操作日期的一些类,我们发现,如果我们想要获得指定格式的日期字符串可以做到但是很麻烦,下面为大家介绍几种日期的格式化方式。
DateFormat是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。日期/时间格式化子类(如 SimpleDateFormat)允许进行格式化(也就是日期 -> 文本)、解析(文本-> 日期)和标准化。将日期表示为 Date 对象,或者表示为从 GMT(格林尼治标准时间)1970 年 1 月 1 日 00:00:00 这一刻开始的毫秒数。
DateFormat提供了很多类方法,以获得基于默认或给定语言环境和多种格式化风格的默认日期/时间 Formatter。格式化风格包括 FULL、LONG、MEDIUM和SHORT。
DateFormat可帮助进行格式化并解析任何语言环境的日期。对于月、星期,甚至日历格式(阴历和阳历),其代码可完全与语言环境的约定无关。
要格式化一个当前语言环境下的日期,可使用某个静态工厂方法:
myString = DateFormat.getDateInstance().format(myDate);
如果格式化多个日期,那么获取该格式并多次使用它是更为高效的做法,这样系统就不必多次获取有关环境语言和国家/地区约定的信息了。
DateFormat df = DateFormat.getDateInstance();
for (int i = 0; i < myDate.length; ++i) {
output.println(df.format(myDate[i]) + "; ");
}
要格式化不同语言环境的日期,可在getDateInstance()的调用中指定它。
DateFormat df = DateFormat.getDateInstance(DateFormat.LONG, Locale.FRANCE);
还可使用DateFormat进行解析。
myDate = df.parse(myString);
使用getDateInstance来获取该国家/地区的标准日期格式。另外还提供了一些其他静态工厂方法。使用 getTimeInstance 可获取该国家/地区的时间格式。使用getDateTimeInstance 可获取日期和时间格式。可以将不同选项传入这些工厂方法,以控制结果的长度(从 SHORT 到 MEDIUM 到 LONG 再到 FULL)。确切的结果取决于语言环境,但是通常:
- SHORT 完全为数字,如 12.13.52 或 3:30pm
- MEDIUM 较长,如 Jan 12, 1952
- LONG 更长,如 January 12, 1952 或 3:30:32pm
- FULL 是完全指定,如 Tuesday、April 12、1952 AD 或 3:30:42pm PST
如果愿意,还可以在格式上设置时区。如果想对格式化或解析施加更多的控制(或者给予用户更多的控制),可以尝试将从工厂方法所获取的 DateFormat 强制转换为 SimpleDateFormat。这适用于大多数国家/地区;只是要记住将其放入一个 try 代码块中,以防遇到特殊的格式。
构造方法
protected DateFormat() //创建一个新的 DateFormat
代码实例:
import java.text.DateFormat;
import java.text.ParseException;
import java.util.Date;
public class DateFormatDemo
{
public static void main(String[] args) throws ParseException
{
// 获取日期格式器,该格式器具有默认语言环境的默认格式化风格
DateFormat dateFormat = DateFormat.getDateInstance();
// 格式化当前时间
System.out.println(dateFormat.format(new Date()));
// 解析字符串为时间
System.out.println(dateFormat.parse("2015-12-26"));
// 获取时间格式器,该格式器具有默认语言环境的默认格式化风格。
DateFormat timeFormat = DateFormat.getTimeInstance();
// 格式化当前时间
System.out.println(timeFormat.format(new Date()));
// 解析字符串为时间
System.out.println(timeFormat.parse("21:40:02"));
}
}