java的日期类

来源:互联网 发布:如何自学成为程序员 编辑:程序博客网 时间:2024/06/03 15:22

1.日期相关类

Date类: Java.util.Date类,不是java.sql.Date.  类 Date 表示特定的瞬间,精确到毫秒.

[java] view plain copy
  1. import java.util.Date;  
  2.   
  3. public class DateDemo1 {  
  4.     public static void main(String[] args) {  
  5.         Date date = new Date();  
  6.         System.out.println(date.toString());  //Sun Jun 18 17:11:54 CST 2017  
  7.         System.out.println("中国人的风格:"+date.toLocaleString());  //2017-6-18 17:11:54  
  8.           
  9.         //date-->long      
  10.         long time = date.getTime();//返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。  
  11.         System.out.println(time); // 1497777306478  
  12.           
  13.         //long-->date  
  14.         long timeMillis = System.currentTimeMillis();//获取系统时间的毫秒数  
  15.         date = new Date(timeMillis);  
  16.         System.out.println(date.toLocaleString());//2017-6-18 17:17:19  
  17.     }  
  18. }  

DateFormat/SimpleDateFormat类:

日期格式化操作:
------------------------------------------------------------------------------
DateFormat:可以完成日期的格式化操作.
                      格式化(format):  Date类型对象------->String类型:    String format(Date date) 
                      解析(parse):       String类型时间------>Date类型:     Date parse(String source)  

[java] view plain copy
  1. import java.text.DateFormat;  
  2. import java.util.Date;  
  3.   
  4. public class DateFormatDemo1 {  
  5.     public static void main(String[] args) {  
  6.           
  7.         DateFormat dateInstance = DateFormat.getInstance();//获取DateFormat对象,普通格式  
  8.         String formatDate = dateInstance.format(new Date());  
  9.         System.out.println(formatDate);//17-6-18 下午5:24  
  10.           
  11.         dateInstance = DateFormat.getDateInstance(); //获取DateFormat对象,只有日期格式  
  12.         String formatDate2 = dateInstance.format(new Date());  
  13.         System.out.println(formatDate2);//2017-6-18  
  14.           
  15.         dateInstance = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG); //获取DateFormat对象,完整格式  
  16.         String formatDate3 = dateInstance.format(new Date());  
  17.         System.out.println(formatDate3);//2017年6月18日 下午05时27分38秒  
  18.     }  
  19. }  

--------------------------------------------------------------------------------
DateFormar转换的格式是固定的,我想根据自己的风格来做转换.
自定义格式,比如:2016-04-16  15:50:48
                   比如:2016/04/16  15:50:48
SimpleDateFormat类:是DateFormat的子类,支持自定义格式模式.(推荐使用这个)

转换格式的定义:比如  yyyy-MM-dd HH:mm:ss


转换方法:



[java] view plain copy
  1. import java.text.ParseException;  
  2. import java.text.SimpleDateFormat;  
  3. import java.util.Date;  
  4.   
  5. public class SimpleDateFormatDemo {  
  6.       
  7.     private static final String pattern = "yyyy-MM-dd HH:mm:ss"//指定日期的格式  
  8.   
  9.     public static void main(String[] args) throws ParseException {  
  10.           
  11.         SimpleDateFormat dateFormat = new SimpleDateFormat(pattern); //创建对象并指定格式  
  12.         //将日期转换成指定格式的字符串  
  13.         String formatDate = dateFormat.format(new Date());  
  14.         System.out.println(formatDate); //2017-06-18 05:32:56  
  15.         //将指定格式的字符串转换成日期  
  16.         Date parseDate = dateFormat.parse(formatDate);  
  17.         System.out.println(parseDate);  
  18.     }  
  19. }  

定义一个日期转换的util

[java] view plain copy
  1. import java.text.ParseException;  
  2. import java.text.SimpleDateFormat;  
  3. import java.util.Date;  
  4.   
  5. public class DateUtil {  
  6.       
  7.     public static final String DEFAULT_DATE_PATTERN="yyyy-MM-dd HH:mm:ss";//默认的日期格式  
  8.     private DateUtil() {} //私有化构造方法,避免外界创建对象  
  9.       
  10.     /** 
  11.      * Date日期转换为String字符串 
  12.      * @param date 传入的日期 
  13.      * @param pattern 传入的格式 
  14.      * @return 按照指定日期格式装换后的日期字符串 
  15.      */  
  16.     public static String date2String(Date date,String pattern){  
  17.         SimpleDateFormat dateFormat = new SimpleDateFormat();  
  18.         if (!hasLength(pattern)) {           //判断如果日期格式为空则给一个我们自己定义的默认的格式  
  19.             pattern=DEFAULT_DATE_PATTERN;  
  20.         }  
  21.         dateFormat.applyPattern(pattern);//将给定模式字符串应用于此日期格式  
  22.         return dateFormat.format(date);  
  23.   
  24.     }  
  25.       
  26.     /** 
  27.      * Date日期转换为String字符串,如果用户只传入日期,使用该方法 
  28.      * @param date 传入的日期 
  29.      * @return 按照默认的日期格式装换后的日期字符串 
  30.      */  
  31.     public static String date2String(Date date){  
  32.         return date2String(date, null);  
  33.     }  
  34.       
  35.     /** 
  36.      * String字符串转换为Date日期 
  37.      * @param date 传入的日期 
  38.      * @param pattern 传入格式 
  39.      * @return 返回指定格式的日期 
  40.      * @throws ParseException 转换异常 
  41.      */  
  42.     public static Date string2date(String date,String pattern) throws ParseException{  
  43.         SimpleDateFormat dateFormat = new SimpleDateFormat();  
  44.         if (!hasLength(pattern)) {   //判断如果日期格式为空则给一个我们自己定义的默认的格式  
  45.             pattern=DEFAULT_DATE_PATTERN;  
  46.         }  
  47.         dateFormat.applyPattern(pattern);//将给定模式字符串应用于此日期格式  
  48.         return dateFormat.parse(date);  
  49.     }  
  50.     /** 
  51.      * String字符串转换为Date日期 ,不指定格式 
  52.      * @param date 传入的日期 
  53.      * @return 返回指定格式的日期 
  54.      * @throws ParseException 转换异常 
  55.      */  
  56.     public static Date string2date(String date) throws ParseException{  
  57.         return string2date(date, null);  
  58.     }  
  59.       
  60.     /** 
  61.      * 判断字符串非空,既不是引用为空,也不是空字符 
  62.      * @param str 传入一个字符串 
  63.      * @return true:字符串非空;false:字符串为空 
  64.      */  
  65.     private static boolean hasLength(String str) {  
  66.         return str != null && !"".equals(str.trim());  
  67.     }  
  68.   
  69. }  
测试:

[java] view plain copy
  1. import java.text.ParseException;  
  2. import java.util.Date;  
  3.   
  4. public class TestDemo {  
  5.   
  6.     public static void main(String[] args) throws ParseException {  
  7.           
  8.         String stringDate1 = DateUtil.date2String(new Date(), "yyyy/MM/dd HH:mm:ss");  
  9.         System.out.println(stringDate1); //2017/06/18 19:24:48  
  10.         String stringDate2 = DateUtil.date2String(new Date());  
  11.         System.out.println(stringDate2); //2017-06-18 19:24:48  
  12.           
  13.         Date date1 = DateUtil.string2date(stringDate1,"yyyy/MM/dd HH:mm:ss");  
  14.         System.out.println(date1);  //Sun Jun 18 19:24:48 CST 2017  
  15.         Date date2 = DateUtil.string2date(stringDate2);  
  16.         System.out.println(date2);  //Sun Jun 18 19:24:48 CST 2017  
  17.     }  
  18. }  

Calendar类:

Java8中重新为日期定义了新的API.
-------------------------------------------------------------

Date类中的大量方法都已经过时了,过时不代表不存在,依然可以使用,只不过不建议使用,官方建议我们使用Calendar类.

日历类(Calendar):是抽象类,表示日历,比Date更强大.
创建日历对象:
  Calendar c = Calendar.getInstance();
   int get(int field) 返回给定日历字段(年,月,日,时,分,秒)的值。



查询最近一周.......的信息,如何表示最近这一周.
beginTime:
endTime: 当前系统时间的晚上凌晨之前.


原创粉丝点击