java中的日期时间

java.text.SimpleDateFormat 类 ----时间日期格式化

java.util.Date类 ----构造时间日期

  1 package com;
  2 
  3 import java.text.ParsePosition;
  4 import java.text.SimpleDateFormat;
  5 import java.util.Date;
  6 
  7 public class Test4 {
  8 
  9     /**
 10      * @param args
 11      */
 12     public static void main(String[] args) {
 13         // TODO Auto-generated method stub
 14 
 15         
 16         Date d1 = stringToDate("2011-12-13");
 17         Date dd1=stringToDate("2011-12-12");
 18         System.out.println(dd1);  //Mon Dec 12 00:00:00 CST 2011
 19         System.out.println(d1);   //Tue Dec 13 00:00:00 CST 2011
 20         
 21         if(d1.compareTo(dd1)==1){
 22             System.out.println("d1>dd1");
 23         }else if(d1.compareTo(dd1)==0){
 24             System.out.println("d1==dd1");
 25         }else if(d1.compareTo(dd1)==-1){
 26             System.out.println("d1<dd1");
 27         }                                        //d1>dd1
 28         Date d2=new Date();
 29         System.out.println(dateToString1(d2));//2013-05-28 02:45:38 下午
 30         System.out.println(Now());//2013-05-28 14:45:38
 31         System.out.println(getYYYY_MM_DD());//2013-05-28
 32         System.out.println(getDay());//28
 33         System.out.println(getHour());//14
 34         System.out.println(getMonth());//05
 35         System.out.println(getWeek());//星期二
 36         System.out.println(getYear());//2013
 37         
 38         
 39         String s1="22";
 40         
 41     }
 42 
 43     /**
 44      * 字符串转换为java.util.Date<br>
 45      * 支持格式为 yyyy.MM.dd G 'at' hh:mm:ss z 如 '2002-1-1 AD at 22:10:59 PSD'<br>
 46      * yy/MM/dd HH:mm:ss 如 '2002/1/1 17:55:00'<br>
 47      * yy/MM/dd HH:mm:ss pm 如 '2002/1/1 17:55:00 pm'<br>
 48      * yy-MM-dd HH:mm:ss 如 '2002-1-1 17:55:00' <br>
 49      * yy-MM-dd HH:mm:ss am 如 '2002-1-1 17:55:00 am' <br>
 50      * 
 51      * @param time
 52      *            String 字符串<br>
 53      * @return Date 日期<br>
 54      */
 55     public static Date stringToDate(String time) {
 56         SimpleDateFormat formatter;
 57         int tempPos = time.indexOf("AD");
 58         time = time.trim();
 59         formatter = new SimpleDateFormat("yyyy.MM.dd G 'at' hh:mm:ss z");
 60         if (tempPos > -1) {
 61             time = time.substring(0, tempPos) + "公元"
 62                     + time.substring(tempPos + "AD".length());// china
 63             formatter = new SimpleDateFormat("yyyy.MM.dd G 'at' hh:mm:ss z");
 64         }
 65         tempPos = time.indexOf("-");
 66         if (tempPos > -1 && (time.indexOf(" ") < 0)) {
 67              formatter = new SimpleDateFormat ("yyyy-MM-dd");
 68         } else if ((time.indexOf("/") > -1) && (time.indexOf(" ") > -1)) {
 69             formatter = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
 70         } else if ((time.indexOf("-") > -1) && (time.indexOf(" ") > -1)) {
 71             formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 72         } else if ((time.indexOf("/") > -1) && (time.indexOf("am") > -1)
 73                 || (time.indexOf("pm") > -1)) {
 74             formatter = new SimpleDateFormat("yyyy-MM-dd KK:mm:ss a");
 75         } else if ((time.indexOf("-") > -1) && (time.indexOf("am") > -1)
 76                 || (time.indexOf("pm") > -1)) {
 77             formatter = new SimpleDateFormat("yyyy-MM-dd KK:mm:ss a");
 78         }
 79         ParsePosition pos = new ParsePosition(0);
 80         java.util.Date ctime = formatter.parse(time, pos);
 81 
 82         return ctime;
 83     }
 84 
 85     /**
 86      * 将java.util.Date 格式转换为字符串格式'yyyy-MM-dd HH:mm:ss'(24小时制)<br>
 87      * 如Sat May 11 17:24:21 CST 2002 to '2002-05-11 17:24:21'<br>
 88      * 
 89      * @param time
 90      *            Date 日期<br>
 91      * @return String 字符串<br>
 92      */
 93 
 94     public static String dateToString(Date time) {
 95         SimpleDateFormat formatter;
 96         formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 97         String ctime = formatter.format(time);
 98 
 99         return ctime;
100     }
101 
102     /**
103      * 将java.util.Date 格式转换为字符串格式'yyyy-MM-dd HH:mm:ss a'(12小时制)<br>
104      * 如Sat May 11 17:23:22 CST 2002 to '2002-05-11 05:23:22 下午'<br>
105      * 
106      * @param time
107      *            Date 日期<br>
108      * @param x
109      *            int 任意整数如:1<br>
110      * @return String 字符串<br>
111      */
112     public static String dateToString1(Date time) {
113         SimpleDateFormat formatter;
114         formatter = new SimpleDateFormat("yyyy-MM-dd KK:mm:ss a");
115         String ctime = formatter.format(time);
116 
117         return ctime;
118     }
119 
120     /**
121      * 取系统当前时间:返回只值为如下形式 2002-10-30 20:24:39
122      * 
123      * @return String
124      */
125     public static String Now() {
126         return dateToString(new Date());
127     }
128 
129     /**
130      * 取系统当前时间:返回只值为如下形式 2002-10-30 08:28:56 下午
131      * 
132      * @param hour
133      *            为任意整数
134      * @return String
135      */
136     public static String Now(int hour) {
137         return dateToString1(new Date());
138     }
139 
140     /**
141      * 取系统当前时间:返回值为如下形式 2002-10-30
142      * 
143      * @return String
144      */
145     public static String getYYYY_MM_DD() {
146         return dateToString(new Date()).substring(0, 10);
147 
148     }
149 
150     /**
151      * 取系统给定时间:返回值为如下形式 2002-10-30
152      * 
153      * @return String
154      */
155     public static String getYYYY_MM_DD(String date) {
156         return date.substring(0, 10);
157 
158     }
159 
160     public static String getHour() {
161         SimpleDateFormat formatter;
162         formatter = new SimpleDateFormat("H");
163         String ctime = formatter.format(new Date());
164         return ctime;
165     }
166 
167     public static String getDay() {
168         SimpleDateFormat formatter;
169         formatter = new SimpleDateFormat("d");
170         String ctime = formatter.format(new Date());
171         return ctime;
172     }
173 
174     public static String getMonth() {
175         SimpleDateFormat formatter;
176         formatter = new SimpleDateFormat("MM");
177         String ctime = formatter.format(new Date());
178         return ctime;
179     }
180 
181     public static String getYear() {
182         SimpleDateFormat formatter;
183         formatter = new SimpleDateFormat("yyyy");
184         String ctime = formatter.format(new Date());
185         return ctime;
186     }
187 
188     public static String getWeek() {
189         SimpleDateFormat formatter;
190         formatter = new SimpleDateFormat("E");
191         String ctime = formatter.format(new Date());
192         return ctime;
193     }
194 }
View Code

    java中日期时间的比较要用到java.text.SimpleDateFormat 类和java.util.Date类compareTo方法,SimpleDateFormat类用于时间日期格式化,将日期时间格式化为制定的格式,compareTo方法用于比较日期时间。

用法:
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
这一行最重要,它确立了转换的格式,yyyy是完整的西元年,MM是月份,dd是日期, 至於HH:mm:ss就不需要我再解释了吧!
ps:为什麽有的格式大写,有的格式小写,那是怕避免混淆,例如MM是月份,mm是分;HH是24小时制,而hh是12小时制

1.字串转日期:
 2002-10-8 15:30:22要把它转成日期,可以用
 Date date=sdf.parse("2002-10-8 15:30:22");
2.日期转字串
 假如把今天的日期转成字串可用
 String datestr=sdf.format(new Date());
 这个字串的内容便类似2002-10-08 14:55:38

透过这个API我们便可以随心所欲的将日期转成我们想要的字串格式,例如希望将日期输出成2002年10月08日,
我们可以这麽写:
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日");
String datestr=sdf.format(new Date());
datestr便会依照我们设定的格式输出

//对日期格式的转换成("yyyy-MM-dd")格式的方法
public java.sql.Date Convert(String str)
{
    java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd");
    try
    {
      java.util.Date d = sdf.parse(str);
      java.sql.Date d1 = new java.sql.Date(d.getTime());
      return d1;
    }
    catch(Exception ex)
    {
      ex.printStackTrace();
      return null;
    }
}

posted @ 2013-05-28 15:00  宅山仔  阅读(254)  评论(0编辑  收藏  举报