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

  • 相关阅读:
    linux系统root用户忘记密码的重置方法
    Linux系统的初始化配置
    LINUX awk 函数
    随机产生一个密码,要求同时包含大小写以及数字这三种字符。
    sed 函数 linux
    grep 函数
    linux sort 函数
    从零开始的JAVA -4. 运算符与表达式
    cp
    PATH
  • 原文地址:https://www.cnblogs.com/myseries/p/7500042.html
Copyright © 2020-2023  润新知