android JAVA字符串转日期或日期转字符串(转)

用法: SimpleDateFormat sdf = new SimpleDateFormat( " yyyy-MM-dd HH:mm:ss " );

这一行最重要,它确立了转换的格式,yyyy是完整的公元年,MM是月份,dd是日期,至于HH:mm:ss

就不需要我再解释了吧!

PS:为什么有的格式大写,有的格式小写,那是怕避免混淆,例如MM是月份,mm是分;HH是24小

时制,而hh是12小时制。

1.字符串转日期
2008-07-10 19:20:00 要把它转成日期,可以用 Date date = sdf.parse( " 2008-07-10 19:20:00 " );

2.日期转字符串

假如把今天的日期转成字符串可用 String str = sdf.format(new Date());

这个字符串内容的格式类似2008-07-10 19:20:00。

透过这个API我们便可以随心所欲的将日期转成我们想要的字符串格式,例如希望将日期输出成2008

年7月10日,我们可以这么写:

SimpleDateFormat sdf = new SimpleDateFormat( " yyyy年MM月dd日 " );

String str = sdf.format(new Date());

str便会依照我们设定的格式输出了。

附编写好的一个简单实例:

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

日期比较:

在JAVA中日期的计算与比较可以使用Date和DateFormat来解决,下面是一段示例代码:

 1 import java.text.*;
 2 import java.util.*;
 3 
 4 public class Test{
 5 
 6  public static void main(String[] args){
 7   try{
 8    Date date=new Date();
 9    DateFormat df=DateFormat.getDateTimeInstance();
10    String now=df.format(date); 
11    System.out.println("现在时间:"+now);
12 
13    System.out.println("现在时间是否在16:00之前:"+date.before(df.parse("2004-12-24 16:00:00"))); 
14   }
15   catch(ParseException e){System.out.print(e.getMessage());
16   }
17  }
18 }

查看更多点以下原贴网址:

(转自:http://wenku.baidu.com/link?url=t-ulNF0TZ3_5unuhBbU6topzg1ChyPbS75mNvM_M4-aZjnM38FisZ0XTBlhJrlXKgnhbSYKAE99W6WMI6zFFxQPMv9yqD__afoV7Gdb5Ivq)

原文地址:https://www.cnblogs.com/jenson138/p/4138030.html