API中关于日期的使用方法

在Java中对日期的显示进行了很好的类的支持:Date DateFormat SimpleDateFormat

(1)Calendar
这是一个抽象类,不能直接被实例化,如果要实例化,可以使用其子类,GregorianCalendar进行实例化操作。
我们经常要分开获取年,月,日.时,分,秒等这些字段,我们可以通过这个类完成。

import java.util.Calendar;
import java.util.GregorianCalendar;

public class CalendarDemo {
public static void main(String[] args) {
Calendar calendar = new GregorianCalendar();
System.out.println("年: " + calendar.get(Calendar.YEAR));
System.out.println("月: " + (calendar.get(Calendar.MONTH) + 1));
System.out.println("日: " + calendar.get(Calendar.DAY_OF_MONTH));
System.out.println("时: " + calendar.get(Calendar.HOUR_OF_DAY));
System.out.println("分: " + calendar.get(Calendar.MINUTE));
System.out.println("秒: " + calendar.get(Calendar.SECOND));
System.out.println("毫秒: " + calendar.get(Calendar.MILLISECOND));
}
}


输出结果为:

年: 2010
月: 10
日: 15
时: 17
分: 14
秒: 9
毫秒: 421



import java.util.Calendar;
import java.util.GregorianCalendar;

public class DateTime {
private Calendar calendar = new GregorianCalendar(); // 实例化Calendar对象

public String getDate() {// 2009-03-02
StringBuffer buf = new StringBuffer();
buf.append(calendar.get(Calendar.YEAR)).append("-");
buf.append(this.addZero((calendar.get(Calendar.MONTH) + 1), 2)).append(
"-");
buf.append(this.addZero(calendar.get(Calendar.DAY_OF_MONTH), 2));
return buf.toString();
}

public String getDateTime() {// 2009-03-02 16:19:34.123
StringBuffer buf = new StringBuffer();
buf.append(this.getDate()).append(" ");
buf.append(this.addZero(calendar.get(Calendar.HOUR_OF_DAY), 2)).append(
":");
buf.append(this.addZero(calendar.get(Calendar.MINUTE), 2)).append(":");
buf.append(this.addZero(calendar.get(Calendar.SECOND), 2)).append(".");
buf.append(this.addZero(calendar.get(Calendar.MILLISECOND), 3));
return buf.toString();
}

public String getDateComplete() {// 2009年03月02日
StringBuffer buf = new StringBuffer();
buf.append(calendar.get(Calendar.YEAR)).append("年");
buf.append(this.addZero((calendar.get(Calendar.MONTH) + 1), 2)).append(
"月");
buf.append(this.addZero(calendar.get(Calendar.DAY_OF_MONTH), 2))
.append("日");
return buf.toString();
}

public String getDateTimeComplete() {// 2009年03月02日16时19分34秒123毫秒
StringBuffer buf = new StringBuffer();
buf.append(this.getDateComplete());
buf.append(this.addZero(calendar.get(Calendar.HOUR_OF_DAY), 2)).append(
"时");
buf.append(this.addZero(calendar.get(Calendar.MINUTE), 2)).append("分");
buf.append(this.addZero(calendar.get(Calendar.SECOND), 2)).append("秒");
buf.append(this.addZero(calendar.get(Calendar.MILLISECOND), 3)).append(
"毫秒");
return buf.toString();
}

private String addZero(int temp, int len) {
StringBuffer str = new StringBuffer();
str.append(temp);// 加入数字
while (str.length() < len) {
str.insert(0, 0); // 在第一个位置加上字母0
}
return str.toString();
}

public static void main(String args[]) {
System.out.println(new DateTime().getDateTimeComplete());
}
}



2.此类专门用于格式使用,java.util.Date本身可以很好的指定出一个具体的日期,但是这样的日期在使用时的格式不是很理想,所以可以通过DateFormat进行指定格式的转换。
在DateFormat中存在以下的格式操作:
public final String format(Date date)
取得DateFormat实例:
public static final DateFormat getDateInstance() 根据默认环境取得
public static final DateFormat getDateInstance(int style,Locale aLocale)指定显示样式取得
public static final DateFormat getDateTimeInstance()
public static final DateFormat getDateTimeInstance(int dateStyle,int timeStyle)


public class DateFormatDemo01 {
public static void main(String[] args) {
Date date = new Date();
DateFormat formatDate = DateFormat.getDateInstance();
DateFormat formatDatetime = DateFormat.getDateTimeInstance();
System.out.println(formatDate.format(date)); // 格式化日期
System.out.println(formatDatetime.format(date)); // 格式化日期
}

}


3.SimpleDateFormat是DateFormat的子类,也是用于对日期格式的操作,可以用于自己给定的日期格式进行。

public class SimpleDateFormatDemo01 {
public static void main(String[] args) throws Exception {
String str = "2009-03-03 09:21:35.345";
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS");
SimpleDateFormat sdf2 = new SimpleDateFormat(
"yyyy年MM月dd日 hh时mm分ss秒SSS毫秒");
Date date = sdf1.parse(str);// 提取格式中的日期
String newStr = sdf2.format(date);// 改变格式
System.out.println("转换之后的日期:" + newStr);
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值