﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-guangcaiwudong-文章分类-Java</title><link>http://www.blogjava.net/guangcaiwudong/category/53488.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 09 Apr 2013 01:00:07 GMT</lastBuildDate><pubDate>Tue, 09 Apr 2013 01:00:07 GMT</pubDate><ttl>60</ttl><item><title>Java的日期格式化常用方法</title><link>http://www.blogjava.net/guangcaiwudong/articles/397536.html</link><dc:creator>Kevin_YK</dc:creator><author>Kevin_YK</author><pubDate>Mon, 08 Apr 2013 08:50:00 GMT</pubDate><guid>http://www.blogjava.net/guangcaiwudong/articles/397536.html</guid><wfw:comment>http://www.blogjava.net/guangcaiwudong/comments/397536.html</wfw:comment><comments>http://www.blogjava.net/guangcaiwudong/articles/397536.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/guangcaiwudong/comments/commentRss/397536.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/guangcaiwudong/services/trackbacks/397536.html</trackback:ping><description><![CDATA[<div><p><span style="white-space:pre">	</span>一般常用格式化类DateFormat和SimpleDateFormat的format(Date time)方法进行格式化日期.</p><p><span style="white-space:pre">	</span>1<strong>. 首先介绍java.text.SimpleDateFormat类.</strong></p><div><dl><dt><pre>public class <strong>SimpleDateFormat </strong><span style="font-family: verdana, 'courier new'; white-space: normal; ">extends <a title="java.text 中的类">DateFormat</a></span></pre></dt></dl></div><div><p><code>SimpleDateFormat</code></p> 是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化（日期 -&gt; 文本）、解析（文本 -&gt; 日期）和规范化。</div><div> 使得可以选择任何用户定义的日期-时间格式的模式。但是，仍然建议通过 <code>DateFormat</code> 中的 <code>getTimeInstance</code>、<code>getDateInstance</code> 或 <code>getDateTimeInstance</code> 来创建日期-时间格式器。每一个这样的类方法都能够返回一个以默认格式模式初始化的日期/时间格式器。可以根据需要使用 <code>applyPattern</code> 方法来修改格式模式。</div><p>&nbsp;</p><div><h4>日期和时间模式</h4>  <p> 日期和时间格式由<em>日期和时间模式</em> 字符串指定。在日期和时间模式字符串中，未加引号的字母 <code>'A'</code> 到 <code>'Z'</code> 和 <code>'a'</code> 到 <code>'z'</code> 被解释为模式字母，用来表示日期或时间字符串元素。文本可以使用单引号 (<code>'</code>) 引起来，以免进行解释。<code>"''"</code> 表示单引号。所有其他字符均不解释；只是在格式化时将它们简单复制到输出字符串，或者在解析时与输入字符串进行匹配。  </p><p> 定义了以下模式字母（所有其他字符 <code>'A'</code> 到 <code>'Z'</code> 和 <code>'a'</code> 到 <code>'z'</code> 都被保留）：  </p><blockquote>  <table summary="Chart shows pattern letters, date/time component, presentation, and examples." border="0" cellpadding="0" cellspacing="3">      <tbody><tr bgcolor="#ccccff"> <th align="left">字母 </th><th align="left">日期或时间元素 </th><th align="left">表示 </th><th align="left">示例      </th></tr><tr>          <td><code>G</code> </td><td>Era 标志符          </td><td><a>Text</a>          </td><td><code>AD</code>      </td></tr><tr bgcolor="#eeeeff">          <td><code>y</code> </td><td>年          </td><td><a>Year</a>          </td><td><code>1996</code>; <code>96</code>      </td></tr><tr>          <td><code>M</code> </td><td>年中的月份          </td><td><a>Month</a>          </td><td><code>July</code>; <code>Jul</code>; <code>07</code>      </td></tr><tr bgcolor="#eeeeff">          <td><code>w</code> </td><td>年中的周数          </td><td><a>Number</a>          </td><td><code>27</code>      </td></tr><tr>          <td><code>W</code> </td><td>月份中的周数          </td><td><a>Number</a>          </td><td><code>2</code>      </td></tr><tr bgcolor="#eeeeff">          <td><code>D</code> </td><td>年中的天数          </td><td><a>Number</a>          </td><td><code>189</code>      </td></tr><tr> <td><code>d</code> </td><td>月份中的天数          </td><td><a>Number</a>          </td><td><code>10</code>      </td></tr><tr bgcolor="#eeeeff">          <td><code>F</code> </td><td>月份中的星期          </td><td><a>Number</a>          </td><td><code>2</code>      </td></tr><tr>          <td><code>E</code> </td><td>星期中的天数          </td><td><a>Text</a>          </td><td><code>Tuesday</code>; <code>Tue</code>      </td></tr><tr bgcolor="#eeeeff">          <td><code>a</code> </td><td>Am/pm 标记          </td><td><a>Text</a>          </td><td><code>PM</code>      </td></tr><tr>          <td><code>H</code> </td><td>一天中的小时数（0-23）          </td><td><a>Number</a>          </td><td><code>0</code>      </td></tr><tr bgcolor="#eeeeff">          <td><code>k</code> </td><td>一天中的小时数（1-24）          </td><td><a>Number</a>          </td><td><code>24</code>      </td></tr><tr>          <td><code>K</code> </td><td>am/pm 中的小时数（0-11）          </td><td><a>Number</a>          </td><td><code>0</code>      </td></tr><tr bgcolor="#eeeeff">          <td><code>h</code> </td><td>am/pm 中的小时数（1-12）          </td><td><a>Number</a>          </td><td><code>12</code>      </td></tr><tr>          <td><code>m</code> </td><td>小时中的分钟数          </td><td><a>Number</a>          </td><td><code>30</code>      </td></tr><tr bgcolor="#eeeeff">          <td><code>s</code> </td><td>分钟中的秒数          </td><td><a>Number</a>          </td><td><code>55</code>      </td></tr><tr>          <td><code>S</code> </td><td>毫秒数          </td><td><a>Number</a>          </td><td><code>978</code>      </td></tr><tr bgcolor="#eeeeff">          <td><code>z</code> </td><td>时区          </td><td><a>General time zone</a>          </td><td><code>Pacific Standard Time</code>; <code>PST</code>; <code>GMT-08:00</code>      </td></tr><tr>          <td><code>Z</code> </td><td>时区          </td><td><a>RFC 822 time zone</a>          </td><td><code>-0800</code></td></tr></tbody></table></blockquote></div><div><h4>示例</h4>  以下示例显示了如何在美国语言环境中解释日期和时间模式。给定的日期和时间为美国太平洋时区的本地时间 2001-07-04 12:08:56。  <blockquote>  <table summary="Examples of date and time patterns interpreted in the U.S. locale" border="0" cellpadding="0" cellspacing="3">      <tbody><tr bgcolor="#ccccff"> <th align="left">日期和时间模式 </th><th align="left">结果      </th></tr><tr>          <td><code>"yyyy.MM.dd G 'at' HH:mm:ss z"</code>          </td><td><code>2001.07.04 AD at 12:08:56 PDT</code>      </td></tr><tr bgcolor="#eeeeff">          <td><code>"EEE, MMM d, ''yy"</code>          </td><td><code>Wed, Jul 4, '01</code>      </td></tr><tr>          <td><code>"h:mm a"</code>          </td><td><code>12:08 PM</code>      </td></tr><tr bgcolor="#eeeeff">          <td><code>"hh 'o''clock' a, zzzz"</code>          </td><td><code>12 o'clock PM, Pacific Daylight Time</code>      </td></tr><tr>          <td><code>"K:mm a, z"</code>          </td><td><code>0:08 PM, PDT</code>      </td></tr><tr bgcolor="#eeeeff">          <td><code>"yyyyy.MMMMM.dd GGG hh:mm aaa"</code>          </td><td><code>02001.July.04 AD 12:08 PM</code>      </td></tr><tr>          <td><code>"EEE, d MMM yyyy HH:mm:ss Z"</code>          </td><td><code>Wed, 4 Jul 2001 12:08:56 -0700</code>      </td></tr><tr bgcolor="#eeeeff">          <td><code>"yyMMddHHmmssZ"</code>          </td><td><code>010704120856-0700</code>      </td></tr><tr>          <td><code>"yyyy-MM-dd'T'HH:mm:ss.SSSZ"</code>          </td><td><code>2001-07-04T12:08:56.235-0700</code></td></tr></tbody></table></blockquote></div><p><strong>常用构造方法 :</strong></p><p>&nbsp;SimpleDateFormat sFormat = new SimpleDateFormat(String pattern);</p><p>或者</p><p>SimpleDateFormat sFormat = new SimpleDateFormat();</p><p>sFormat.applyPattern(String pattern);&nbsp;</p><p>或者</p><p>DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.<strong>FULL</strong>, Locale.getDefault());</p><p><strong>//具体可取DateFormat.SHORT,DEFAULT,LONG,FULL等</strong></p><p>&nbsp;</p><p>&nbsp;<strong>2. 常用的日期类有Calendar和GregorianCalendar,后者是前者的子类,并拓展了一些功能,例如是否为闰年等方法.两者用法基本类似</strong></p><p><strong>note:</strong>在 JDK&nbsp;1.1 之前，类 <code>Date</code> 有两个其他的函数。它允许把日期解释为年、月、日、小时、分钟和秒值。它也允许格式化和解析日期字符串。不过，这些函数的 API 不易于实现国际化。从 JDK&nbsp;1.1 开始，应该使用 <code>Calendar</code> 类实现日期和时间字段之间转换，使用 <code>DateFormat</code> 类来格式化和解析日期字符串。<code>Date</code> 中的相应方法已废弃。&nbsp;</p><p>&nbsp;<strong>常用构造方法:</strong></p><p>Calendar c = Calendar.getInstance();</p><p>c.setTime(Date date);//<strong>或 c.setTime(int year,int month, int day,int hour,int minute , int second);</strong></p><p>&nbsp;</p><p>GregorianCalendar gC = new GregorianCalendar(&nbsp;int year,int month, int day,int hour,int minute , int second ) ;//方法可重载,具体看API</p><p>&nbsp;</p><p><strong>3.示例代码 (这里使用了log4j,只需将代码中的log.info改成相应的System.out.println,置于main()方法中运行即可)</strong></p><div><a title="复制代码"><img src="http://common.cnblogs.com/images/copycode.gif" alt="复制代码" /></a></div><div><span style="color: #0000FF;">public</span>&nbsp;<span style="color: #0000FF;">void</span><span style="color: #000000;">&nbsp;testCalendar(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Calendar&nbsp;c1&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;Calendar.getInstance();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c1.setTime(</span><span style="color: #0000FF;">new</span><span style="color: #000000;">&nbsp;Date());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">当Calendar中设置的时间超过每项的最大值时,会以减去最大值后的值设置时间,例如月份设置13,最后会变成13-11=02</span><span style="color: #008000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Calendar&nbsp;c2&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;Calendar.getInstance();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c2.set(</span><span style="color: #000000;">1920</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">13</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">24</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">22</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">32</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">22</span><span style="color: #000000;">);<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;//使用pattern<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SimpleDateFormat&nbsp;format&nbsp;</span><span style="color: #000000;">=</span>&nbsp;<span style="color: #0000FF;">new</span><span style="color: #000000;">&nbsp;SimpleDateFormat(</span><span style="color: #000000;">"</span><span style="color: #000000;">yyyy-MM-dd&nbsp;H:m:s</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SimpleDateFormat&nbsp;format2&nbsp;</span><span style="color: #000000;">=</span>&nbsp;<span style="color: #0000FF;">new</span><span style="color: #000000;">&nbsp;SimpleDateFormat(</span><span style="color: #000000;">"</span><span style="color: #000000;">yy-MM-dd&nbsp;H:m:s</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SimpleDateFormat&nbsp;format3&nbsp;</span><span style="color: #000000;">=</span>&nbsp;<span style="color: #0000FF;">new</span><span style="color: #000000;">&nbsp;SimpleDateFormat(</span><span style="color: #000000;">"</span><span style="color: #000000;">y-M-d&nbsp;H:m:s</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;//使用约定格式<div><div><span style="white-space:pre">	</span>DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.FULL, Locale.getDefault());</div><p>&nbsp;</p></div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;//获取Calendar中各个属性字段的方法<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log.info(</span><span style="color: #000000;">"</span><span style="color: #000000;">The&nbsp;year&nbsp;now&nbsp;time&nbsp;is&nbsp;</span><span style="color: #000000;">"</span>&nbsp;<span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;c1.get(c1.YEAR));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log.info(</span><span style="color: #000000;">"</span><span style="color: #000000;">The&nbsp;month&nbsp;now&nbsp;time&nbsp;is&nbsp;</span><span style="color: #000000;">"</span>&nbsp;<span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;c1.get(c1.MONTH));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log.info(</span><span style="color: #000000;">"</span><span style="color: #000000;">The&nbsp;day_of_month&nbsp;now&nbsp;time&nbsp;is&nbsp;</span><span style="color: #000000;">"</span>&nbsp;<span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;c1.get(c1.DAY_OF_MONTH));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log.info(</span><span style="color: #000000;">"</span><span style="color: #000000;">The&nbsp;day_of_week&nbsp;now&nbsp;time&nbsp;is&nbsp;</span><span style="color: #000000;">"</span>&nbsp;<span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;c1.get(c1.DAY_OF_WEEK));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log.info(</span><span style="color: #000000;">"</span><span style="color: #000000;">今天是在这个月的第几个星期:&nbsp;</span><span style="color: #000000;">"</span>&nbsp;<span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;c1.get(c1.DAY_OF_WEEK_IN_MONTH));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log.info(</span><span style="color: #000000;">"</span><span style="color: #000000;">The&nbsp;day_of_year&nbsp;now&nbsp;time&nbsp;is&nbsp;</span><span style="color: #000000;">"</span>&nbsp;<span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;c1.get(c1.DAY_OF_YEAR));<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;//不同模式对应的格式略有不同,有时间可以测试多一点模式<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log.info(</span><span style="color: #000000;">"</span><span style="color: #000000;">yyyy-MM-dd&nbsp;H:m:s--&gt;</span><span style="color: #000000;">"</span>&nbsp;<span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;format.format(c1.getTime()));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log.info(</span><span style="color: #000000;">"</span><span style="color: #000000;">yy-MM-dd&nbsp;H:m:s--&gt;</span><span style="color: #000000;">"</span>&nbsp;<span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;format2.format(c1.getTime()));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log.info(</span><span style="color: #000000;">"</span><span style="color: #000000;">y-M-d&nbsp;H:m:s--&gt;</span><span style="color: #000000;">"</span>&nbsp;<span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;format3.format(c1.getTime()));<br /></span>&nbsp;<span style="white-space:pre">	</span>log.info("DateFormat.FULL--&gt;" + dateFormat.fomat(c1.getTime()));</div><p><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log.info(format.format(c2.getTime()));</span></p><p><span style="font-family: verdana, 'courier new'; font-size: 14px; line-height: 21px; "><span style="font-family: 'Courier New'; font-size: 13px; line-height: 19px; color: #000000; ">}</span></span>&nbsp; <br /></p></div><br /><br /><br />from: <div>http://www.cnblogs.com/mailingfeng/archive/2011/07/28/2120422.html</div><img src ="http://www.blogjava.net/guangcaiwudong/aggbug/397536.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/guangcaiwudong/" target="_blank">Kevin_YK</a> 2013-04-08 16:50 <a href="http://www.blogjava.net/guangcaiwudong/articles/397536.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>