[Java] 如何将String转成Data对象

下面的代码说明如何将String类型的日期转换成java.util.Date类型的对象。为了实现转换,我们使用java.text.SimpleTextFormat类,它继承自java.txt.TextFormat抽象类。

 

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.text.ParseException;
import java.util.Date;

public class StringToDate
{
public static void main(String[] args)
{
DateFormat df
= new SimpleDateFormat("dd/MM/yyyy");

try
{
Date today
= df.parse("20/12/2005");
System.out.println(
"Today = " + df.format(today));
}
catch (ParseException e)
{
e.printStackTrace();
}
}
}

下面是代码的结果:

 

 

Today = 20/12/2005

例子的开始部分创建了一个“dd/MM/yyyy”格式的SimpleDateFormat对象,它意味着要转换的日期字符串的格式是日期、月、年。

 

最后,通过使用parse(String srouce)函数得到一个Date类的实例。由于当给定的字符串不符合给定格式时,parse对象跑出ParseException异常,我们需要捕获它。

下面的列表是从javadoc文档中摘取的用来格式化Date对象的一些预定义的模式。

Letter Date / Time Component Examples
G Era designator AD
y Year 1996; 96
M Month in year July; Jul; 07
w Week in year 27
W Week in month 2
D Day in year 189
d Day in month 10
F Day of week in month 2
E Day in week Tuesday; Tue
a Am/pm marker PM
H Hour in day (0-23) 0
k Hour in day (1-24) 24
K Hour in am/pm (0-11) 0
h Hour in am/pm (1-12) 12
m Minute in hour 30
s Second in minute 55
S Millisecond 978
z Time zone Pacific Standard Time; PST; GMT-08:00
Z Time zone -0800

 

该例子来自:http://www.kodejava.org/examples/19.html

table cellpadding="3" cellspacing="0" border="1" width="100%">
<tr>
<td align="left">Letter</td>
<td align="left">Date / Time Component</td>
<td align="left">Examples</td>
</tr>
<tr>
    <td>G</td>
<td>Era designator</td>
<td>AD</td>
</tr>
<tr>
<td>y</td>
<td>Year</td>
    <td>1996; 96</td>
</tr>
<tr>
<td>M</td>
<td>Month in year</td>
<td>July; Jul; 07</td>
</tr>
<tr>
<td>w</td>
    <td>Week in year</td>
<td>27</td>
</tr>
<tr>
<td>W</td>
<td>Week in month</td>
<td>2</td>
</tr>
<tr>
<td>D</td>
<td>Day in year</td>
<td>189</td>
</tr>
<tr>
<td>d</td>
<td>Day in month</td>
    <td>10</td>
</tr>
<tr>
<td>F</td>
<td>Day of week in month</td>
<td>2</td>
</tr>
<tr>
<td>E</td>
    <td>Day in week</td>
<td>Tuesday; Tue</td>
</tr>
<tr>
<td>a</td>
<td>Am/pm marker</td>
<td>PM</td>
</tr>
<tr>
<td>H</td>
<td>Hour in day (0-23)</td>
<td>0</td>
</tr>
<tr>
<td>k</td>
<td>Hour in day (1-24)</td>
    <td>24</td>
</tr>
<tr>
<td>K</td>
<td>Hour in am/pm (0-11)</td>
<td>0</td>
</tr>
<tr>
<td>h</td>
    <td>Hour in am/pm (1-12)</td>
<td>12</td>
</tr>
<tr>
<td>m</td>
<td>Minute in hour</td>
<td>30</td>
</tr>
<tr>
<td>s</td>
<td>Second in minute</td>
<td>55</td>
</tr>
<tr>
<td>S</td>
<td>Millisecond</td>
    <td>978</td>
</tr>
<tr>
<td>z</td>
<td>Time zone</td>
<td>Pacific Standard Time; PST; GMT-08:00</td>
</tr>
<tr>
<td>Z</td>
    <td>Time zone</td>
<td>-0800</td>
</tr>
</table>

posted on 2010-07-04 16:20  Felix Liu  阅读(2909)  评论(0)    收藏  举报

导航