java.util(Date和Calendar)

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方法,因此你也可以对这些字段进行设置

时间: 2024-10-19 10:16:36

java.util(Date和Calendar)的相关文章

java.sql.date与java.util.date区别以及数据库中插入带时分秒的时间

java.sql.Date,java.sql.Time和java.sql.Timestamp三个都是java.util.Date的子类(包装类). java.sql.Date是java.util.Date的子类,是一个包装了毫秒值的瘦包装器,允许 JDBC 将毫秒值标识为 SQL DATE 值.毫秒值表示自 1970 年 1 月 1 日 00:00:00 GMT 以来经过的毫秒数. 为了与 SQL DATE 的定义一致,由 java.sql.Date 实例包装的毫秒值必须通过将时间.分钟.秒和毫

JAVA 处理时间 - java.sql.Date、java.util.Date与数据库中的Date字段的转换方法[转]

1.如何将java.util.Date转化为java.sql.Date? 转化: java.sql.Date sd; java.util.Date ud; //initialize the ud such as ud = new java.util.Date(); sd = new java.sql.Date(ud.getTime()); 2.如何将获取到的java.sql.Date转换为年-月-日输出 java.sql.Date sd; String dateTime = sd.toStrin

java.util.Date

package com.etc.usual; import java.util.Calendar; import java.util.Date; public class TestDate{ public static void main(String[] args) { // TODO Auto-generated method stub Date d1 = new Date(); System.out.println("d1:"+d1);//d1:Thu May 04 17:03:

java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp区别和联系

参考:链接 在Web开发中,避免不了对日期的操作,常用的关于时间的类有这么几个: java.util.Date.java.sql.Date.java.sql.Time.java.sql.Timestamp,这几个类在JDK的定义如下所示: java.lang.Object -.|__java.util.Date ---.|__java.sql.Date/java.sql.Timestamp/java.sql.Time -.|__java.security.Timestamp java.util.

java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp小结

final SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS", Locale.US);//dd/MM/yyyy final Date now = new Date(); System.out.println(now); final String strDate = sdfDate.format(now); System.out.println(strDate); final Timesta

android java.util.Date和java.util.sql中Date的区别

1.将java.util.Date 转换为 java.sql.Date java.sql.Date sd; java.util.Date ud; //initialize the ud such as ud = new java.util.Date(); sd = new java.sql.Date(ud.getTime()); 2.若要插入到数据库并且相应的字段为Date类型 可使用PreparedStatement.setDate(int ,java.sql.Date)方法 其中的java.

Java-API:java.util.Date

ylbtech-Java-API:java.util.Date Module java.base Package java.util Class Date java.lang.Object java.util.Date All Implemented Interfaces: Serializable, Cloneable, Comparable<Date> Direct Known Subclasses: Date, Time, Timestamp 1.返回顶部 1. Constructor

【java】获取当前日期时间:java.util.Date

1 public class TestDate { 2 public static void main(String[] args) { 3 System.out.println(new java.util.Date()); 4 } 5 } 运行结果:Fri Apr 07 21:56:24 CST 2017

java基础--java.util.Date类型小结

首先先来了解一下Date数据类型: . Date类型通常要和另一个 java.text.SimpleDateFormat类联合使用. 把long-->Date: public Date(long date);  Date类的构造函数可以直接将long数据类型转为Date类型 把Date-->long: public long getTime();Date类的一个方法,可以得到对应的long型.这种转换最大的使用环境就是在java.sql中的以上三个子类. 如果获取当前时间的long类型,可以直