java.util(Date和Calendar)

java

public class Date

implements java.io.Serializable, Cloneable, Comparable<Date>

{

public Date() { //当前时间

this(System.currentTimeMillis());

}

public Date(long date) { //分配Date对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。

fastTime = date;

}

@Deprecated

public Date(int year, int month, int date) {

this(year, month, date, 0, 0, 0);

}

@Deprecated

public Date(int year, int month, int date, int hrs, int min) {

this(year, month, date, hrs, min, 0);

}

........................

public String toString() {

// "EEE MMM dd HH:mm:ss zzz yyyy";

BaseCalendar.Date date = normalize();

StringBuilder sb = new StringBuilder(28);

int index = date.getDayOfWeek();

if (index == gcal.SUNDAY) {

index = 8;

}

convertToAbbr(sb, wtb[index]).append(' '); // EEE

convertToAbbr(sb, wtb[date.getMonth() - 1 + 2 + 7]).append(' '); // MMM

CalendarUtils.sprintf0d(sb, date.getDayOfMonth(), 2).append(' '); // dd

CalendarUtils.sprintf0d(sb, date.getHours(), 2).append(':'); // HH

CalendarUtils.sprintf0d(sb, date.getMinutes(), 2).append(':'); // mm

CalendarUtils.sprintf0d(sb, date.getSeconds(), 2).append(' '); // ss

TimeZone zi = date.getZone();

if (zi != null) {

sb.append(zi.getDisplayName(date.isDaylightTime(), zi.SHORT, Locale.US)); // zzz

} else {

sb.append("GMT");

}

sb.append(' ').append(date.getYear()); // yyyy

return sb.toString();

}

}

Date 表示距离1970-01-01 00:00:00的毫秒数,值与时区无关。大部分Date的方法都过时了,由Calendar类的方法替代

public class DateTest {

@SuppressWarnings("deprecation")

public static void main(String[] args) {

Date d = new Date();

System.out.println(d);

System.out.println(System.currentTimeMillis());

long l = Date.parse("Sun Sep 10 03:16:48 CST 2017");

System.out.println(l);

Date data = new Date(l);

System.out.println(data);

Date day1=new Date(11,3,4);

System.out.println(day1);

}

}

输出:

Sun Sep 10 03:17:22 CST 2017

1504984642047

1505035008000

Sun Sep 10 17:16:48 CST 2017

Tue Apr 04 00:00:00 CST 1911

Calendar

public abstract class Calendar implements Serializable, Cloneable, Comparable<Calendar> {

protected Calendar()

{

this(TimeZone.getDefaultRef(), Locale.getDefault(Locale.Category.FORMAT));

sharedZone = true;

}

protected Calendar(TimeZone zone, Locale aLocale)

{

fields = new int[FIELD_COUNT];

isSet = new boolean[FIELD_COUNT];

stamp = new int[FIELD_COUNT];

this.zone = zone;

setWeekCountData(aLocale);

}

public static Calendar getInstance()

{

Calendar cal = createCalendar(

TimeZone.getDefaultRef(),Locale.getDefault(Locale.Category.FORMAT));

cal.sharedZone = true;

return cal;

}

public static Calendar getInstance(TimeZone zone)

{

return createCalendar(zone, Locale.getDefault(Locale.Category.FORMAT));

}

public final Date getTime() {

return new Date(getTimeInMillis());

}

public final void setTime(Date date) {

setTimeInMillis(date.getTime());

}

public long getTimeInMillis() {

if (!isTimeSet) {

updateTime();

}

return time;

}

........

Calendar类是一个抽象类,Calendar类的静态方法getInstance()可以初始化一个日历对象:Calendar now = Calendar.getInstance(); 

可以使用下面三个方法把日历定到任何一个时间:

  set(int year ,int month,int date)  

  set(int year ,int month,int date,int hour,int minute) 

  set(int year ,int month,int date,int hour,int minute,int second) 

如果想获得年份、月份、小时等信息可以使用:  

Now.get(Calendar.Month);这样的方法 0表示一月,1表示二月  

  get(Calendar.DAY_OF_MONTH)获得这个月的第几天

  get(Calendar.DAY_OF_WEEK)获得这个星期的第几天 

  get(Calendar.DAY_OF_YEAR)获得这个年的第几天  

  getTimeMillis()获得当前时间的毫秒表示

Calendar和Date的转化
(1) Calendar转化为Date
  Calendar cal=Calendar.getInstance();
  Date date=cal.getTime();
(2) Date转化为Calendar
  Date date=new Date();
  Calendar cal=Calendar.getInstance();
  cal.setTime(date);

格式化输出日期时间:

    Date data = new Date();
    //SimpleDateFormat类用来对日期字符串进行解析和格式化输出
    SimpleDateFormat f2=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
    SimpleDateFormat f3=new SimpleDateFormat("yy/MM/dd HH:mm");
    SimpleDateFormat f4=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//等价于now.toLocaleString()
    SimpleDateFormat f5=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 E ");
    System.out.println(f2.format(d));
    System.out.println(f3.format(d));
    System.out.println(f4.format(d));
    System.out.println(f5.format(d));

关于Calendar 的实现类:GregorianCalendar

Java中只携带了格里历(公历、阳历)的实现,那就是java.util.GregorianCalendar

  Calendar calendar = new GregorianCalendar();

  Calendar类有着对应的get方法,让你获取到年、月、日、小时、分钟、秒、毫秒和给定日期的时区

  Calendar类有着对应的set方法,因此你也可以对这些字段进行设置

以上是 java.util(Date和Calendar) 的全部内容, 来源链接: utcz.com/z/392162.html

回到顶部