zoukankan      html  css  js  c++  java
  • 日期操作类

    主要使用java.util包中的Date、Calendar以及java.text包中的SimpleDateFormat.

    Date类

    //=================================================
    // File Name       :	Date_demo
    //------------------------------------------------------------------------------
    // Author          :	Common
    
    import java.util.Date;
    
    //主类
    //Function        : 	Date_demo
    public class Date_demo {
    
    	public static void main(String[] args) {
    		// TODO 自动生成的方法存根
    		Date date = new Date();										//实例化Date类对象
    		System.out.println("当前日期为:"+date);		//输出日期
    	}
    
    }
    

    Calendar类

    //=================================================
    // File Name       :	Date_demo
    //------------------------------------------------------------------------------
    // Author          :	Common
    
    import java.util.Calendar;
    import java.util.GregorianCalendar;
    
    //主类
    //Function        : 	Date_demo
    public class Calendar_demo {
    
    	public static void main(String[] args) {
    		// TODO 自动生成的方法存根
    		Calendar calendar = null;							//声明一个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));
    	}
    
    }
    

    输出

    年:2017
    月:5
    日:17
    时:20
    分:56
    秒:8
    毫秒:427
    

    DateFormat类

    对java.util.Date进行格式化操作,为了符合中国人的习惯

    DateFormat类和MessageFormat类都属于Format类的子类,专门用于格式化数据使用

    DateFormat类是一个抽象类,无法直接实例化,但是在此抽象类中提供了一个静态方法,可以直接取得本类的实例。

    //=================================================
    // File Name       :	DateFormat_demo
    //------------------------------------------------------------------------------
    // Author          :	Common
    
    import java.util.Date;
    import java.text.DateFormat;
    
    //主类
    //Function        : 	DateFormat_demo
    public class DateFormat_demo {
    
    	public static void main(String[] args) {
    		// TODO 自动生成的方法存根
    		DateFormat df1 = null;										//声明DateFormat类对象
    		DateFormat df2 = null;										//声明DateFormat类对象
    		df1 = DateFormat.getDateInstance();				//取得日期
    		df2 = DateFormat.getDateTimeInstance();		//取得日期时间
    		System.out.println("DATE:"+df1.format(new Date()));		//格式化日期
    		System.out.println("DATETIME:"+df2.format(new Date()));
    	}
    
    }
     

    指定显示的风格

    //=================================================
    // File Name       :	DateFormat_demo
    //------------------------------------------------------------------------------
    // Author          :	Common
    
    import java.util.Date;
    import java.util.Locale;
    import java.text.DateFormat;
    
    //主类
    //Function        : 	DateFormat_demo
    public class DateFormat_demo {
    
    	public static void main(String[] args) {
    		// TODO 自动生成的方法存根
    		DateFormat df1 = null;										//声明DateFormat类对象
    		DateFormat df2 = null;										//声明DateFormat类对象
    
    		
    		//取得日期时间,设置日期的显示格式、时间的显示格式
    		df1 = DateFormat.getDateInstance(DateFormat.YEAR_FIELD,new Locale("zh","CN"));
    		df2 = DateFormat.getDateTimeInstance(DateFormat.YEAR_FIELD,DateFormat.ERA_FIELD,new Locale("zh","CN"));
    		System.out.println("DATE:"+df1.format(new Date()));		//格式化日期
    		System.out.println("DATETIME:"+df2.format(new Date()));
    	}
    
    }
    

    输出

    DATE:2017年5月17日
    DATETIME:2017年5月17日 下午09时38分22秒 CST
    

    格式化日期操作

    首先使用第1个模板将字符串中表示的日期数字取出,然后再使用第2个模板将这些日期数字重新转化为新的格式表示。

    //=================================================
    // File Name       :	DateFormat_demo
    //------------------------------------------------------------------------------
    // Author          :	Common
    
    import java.util.Date;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    
    //主类
    //Function        : 	DateFormat_demo
    public class DateFormat_demo {
    
    	public static void main(String[] args) {
    		// TODO 自动生成的方法存根
    //		DateFormat df1 = null;										//声明DateFormat类对象
    //		DateFormat df2 = null;										//声明DateFormat类对象
    ////		df1 = DateFormat.getDateInstance();				//取得日期
    ////		df2 = DateFormat.getDateTimeInstance();		//取得日期时间
    //		
    //		//取得日期时间,设置日期的显示格式、时间的显示格式
    //		df1 = DateFormat.getDateInstance(DateFormat.YEAR_FIELD,new Locale("zh","CN"));
    //		df2 = DateFormat.getDateTimeInstance(DateFormat.YEAR_FIELD,DateFormat.ERA_FIELD,new Locale("zh","CN"));
    //		System.out.println("DATE:"+df1.format(new Date()));		//格式化日期
    //		System.out.println("DATETIME:"+df2.format(new Date()));
    		
    		String strDate = "2016-3-11 10:20:30.123";		//定义日期时间的字符串
    		String pat1 = "yyyy-MM-dd HH:mm:ss.SSS";		//准备第1个模板,从字符串中提取数字
    		String pat2 = "yyyy年MM月dd日HH时mm分ss秒SSS毫秒";		//准备第1个模板,从字符串中提取数字
    		SimpleDateFormat sdf1 = new SimpleDateFormat(pat1);			//实例化模板对象
    		SimpleDateFormat sdf2 = new SimpleDateFormat(pat2);			//实例化模板对象
    		
    		Date d = null;
    		try{
    			d = sdf1.parse(strDate);				//将给定字符串中的日期提取出来
    		}catch(ParseException e){				//如果提供的字符串格式有错误,则进行异常处理
    			e.printStackTrace();
    		}
    		System.out.println(sdf2.format(d));				//将日期变成新的格式
    	}
    
    }
    

     输出

    2016年03月11日10时20分30秒123毫秒
    

    SimpleDateFormat的parse方法

    	public static void main(String[] args) throws ParseException {
    		// TODO 自动生成的方法存根
    		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    		String dateString = "2017-08-01";
    		Date date = sdf.parse(dateString);
    		System.out.println(date);
    	}
    

     输出

    Tue Aug 01 00:00:00 CST 2017
    

    实现:基于Calendar类

    //=================================================
    // File Name       :	CalendarClass_demo
    //------------------------------------------------------------------------------
    // Author          :	Common
    
    import java.sql.Date;
    import java.util.Calendar;
    import java.util.GregorianCalendar;
    
    //类名:DateTime
    //属性:
    //方法:
    class DateTime {
    	private Calendar calendar = null;		//定义一个Calendar对象,可以取得时间
    
    	public DateTime() {									
    		super();
    		this.calendar = new GregorianCalendar();		//通过Calendar类的子类实例化
    	}
    	
    	public String getDate(){		//得到完整的日期,格式为:yyyy-MM-dd HH:mm:ss.SSS
    		//考虑到程序要频繁修改字符串,所以使用StringBuffer提升性能
    		StringBuffer buf = new StringBuffer();
    		//依次取得时间
    		buf.append(calendar.get(Calendar.YEAR)).append("-");
    		buf.append(this.addZero(calendar.get(Calendar.MONTH)+1, 2));
    		buf.append("-");
    		buf.append(this.addZero(calendar.get(Calendar.DAY_OF_MONTH), 2));
    		buf.append(" ");
    		buf.append(this.addZero(calendar.get(Calendar.HOUR_OF_DAY), 2));
    		buf.append(":");
    		buf.append(this.addZero(calendar.get(Calendar.MINUTE), 2));
    		buf.append(":");
    		buf.append(this.addZero(calendar.get(Calendar.SECOND), 2));
    		buf.append(".");
    		buf.append(this.addZero(calendar.get(Calendar.MILLISECOND), 3));
    		
    		return buf.toString();
    		
    	}
    	
    	public String getDateComplete(){		//得到完整的日期,格式为:yyyy年MM月dd日HH时mm分ss秒SSS毫秒
    		//考虑到程序要频繁修改字符串,所以使用StringBuffer提升性能
    		StringBuffer buf = new StringBuffer();
    		//依次取得时间
    		buf.append(calendar.get(Calendar.YEAR)).append("年");
    		buf.append(this.addZero(calendar.get(Calendar.MONTH)+1, 2));
    		buf.append("月");
    		buf.append(this.addZero(calendar.get(Calendar.DAY_OF_MONTH), 2));
    		buf.append("日");
    		buf.append(this.addZero(calendar.get(Calendar.HOUR_OF_DAY), 2));
    		buf.append("时");
    		buf.append(this.addZero(calendar.get(Calendar.MINUTE), 2));
    		buf.append("分");
    		buf.append(this.addZero(calendar.get(Calendar.SECOND), 2));
    		buf.append("秒");
    		buf.append(this.addZero(calendar.get(Calendar.MILLISECOND), 3));
    		buf.append("毫秒");
    		
    		return buf.toString();
    		
    	}
    	
    	//考虑到日期中有前导0,所以在此处加上了补零的方法
    	private String addZero(int num,int len){
    		StringBuffer s = new StringBuffer(); 
    		s.append(num);
    		while(s.length()<len){		//如果长度不足,则继续补零
    			s.insert(0,"0");					//在第1个位置处补零
    		}
    		return s.toString();
    	}
    	
    	public String getTimeStamp(){		//得到时间戳:yyyyMMddHHmmssSSS
    		StringBuffer buf = new StringBuffer();
    		buf.append(calendar.get(Calendar.YEAR));
    		buf.append(this.addZero(calendar.get(Calendar.MONTH)+1, 2));
    		buf.append(this.addZero(calendar.get(Calendar.DAY_OF_MONTH), 2));
    		buf.append(this.addZero(calendar.get(Calendar.HOUR_OF_DAY), 2));
    		buf.append(this.addZero(calendar.get(Calendar.MINUTE), 2));
    		buf.append(this.addZero(calendar.get(Calendar.SECOND), 2));
    		buf.append(this.addZero(calendar.get(Calendar.MILLISECOND), 3));
    		
    		return buf.toString();
    		
    	}
    	
    }
    
    //主类
    //Function        : 	CalendarClass_demo
    public class CalendarClass_demo {
    
    	public static void main(String[] args) {
    		// TODO 自动生成的方法存根
    		DateTime dt = new DateTime();			//实例化DateTime对象
    		System.out.println("系统时间:"+dt.getDate());
    		System.out.println("中文时间:"+dt.getDateComplete());
    		System.out.println("系统时间:"+dt.getTimeStamp());
    	}
    
    }
    

     输出

    系统时间:2017-05-17 20:41:06.508
    中文时间:2017年05月17日20时41分06秒508毫秒
    系统时间:20170517204106508
    

    实现:基于SimpleDateFormat类

    //=================================================
    // File Name       :	SimpleDateFormat_demo
    //------------------------------------------------------------------------------
    // Author          :	Common
    
    import java.util.Date;
    import java.text.SimpleDateFormat;
    
    
    //类名:DateTime
    //属性:
    //方法:
    class DateTime_1 {
    	private SimpleDateFormat sdf = null;		//声明日期格式化操作对象,直接对new Date()进行实例化
    	
    	//得到日期,格式为:yyyy-MM-dd HH:mm:ss.SSS
    	public String getDate(){		
    		this.sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
    		return this.sdf.format(new Date());		
    	}
    	
    	//得到完整的日期,格式为:yyyy年MM月dd日HH时mm分ss秒SSS毫秒
    	public String getDateComplete(){		
    		this.sdf = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒SSS毫秒");
    		return this.sdf.format(new Date());		
    	}
    	
    	//得到时间戳,格式为:yyyyMMddHHmmssSSS
    	public String getDateStamp(){		
    		this.sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
    		return this.sdf.format(new Date());		
    	}
    }
    
    //主类
    //Function        : 	SimpleDateFormat_demo
    public class SimpleDateFormat_demo {
    
    	public static void main(String[] args) {
    		// TODO 自动生成的方法存根
    		DateTime dt = new DateTime();			//实例化DateTime对象
    		System.out.println("系统时间:"+dt.getDate());
    		System.out.println("中文时间:"+dt.getDateComplete());
    		System.out.println("系统时间:"+dt.getTimeStamp());
    	}
    
    }
    

     输出

    系统时间:2017-05-17 20:59:26.224
    中文时间:2017年05月17日20时59分26秒224毫秒
    系统时间:20170517205926224
    
  • 相关阅读:
    (项目实战三)响应式首页内容介绍
    (项目实战二)响应式轮播图
    (一)简介
    (项目实战一)响应式导航
    HttpURLConnection 411错误解决
    JMeter使用(Linux)
    性能测试工具比较
    Java常见加密算法
    HttpURLConnection发送请求
    Java AES加密案例
  • 原文地址:https://www.cnblogs.com/tonglin0325/p/5265788.html
Copyright © 2011-2022 走看看