Java的SimpleDateFormat常用方法说明整理

根据网上文章,进行的整理。

关键的参数

  G 年代标志符
  y 年
  M 月
  d 日
  h 时 在上午或下午 (1~12)
  H 时 在一天中 (0~23)
  m 分
  s 秒
  S 毫秒
  E 星期
  D 一年中的第几天
  F 一月中第几个星期几
  w 一年中第几个星期
  W 一月中第几个星期
  a 上午 / 下午 标记符
  k 时 在一天中 (1~24)
  K 时 在上午或下午 (0~11)
  z 时区

 

例子,以及执行结果

import java.text.*;
import java.util.Date;


public class FormatDateTime {

    public static void main(String[] args) {

       ///  打印出2006年11月17日 15时19分56秒
        SimpleDateFormat myFmt=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");

       //打印  06/11/17 15:19
        SimpleDateFormat myFmt1=new SimpleDateFormat("yy/MM/dd HH:mm"); 
 
        //2006-11-17 15:19:56
       SimpleDateFormat myFmt2=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
       

     //2006年11月17日 15时19分56秒 星期五
     SimpleDateFormat myFmt3=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 E ");

       // 一年中的第 321 天 一年中第46个星期 一月中第3个星期 在一天中15时 CST时区
      SimpleDateFormat myFmt4=new SimpleDateFormat(
                   "一年中的第 D 天 一年中第w个星期 一月中第W个星期 在一天中k时 z时区");
     

     Date now=new Date();
       

System.out.println(myFmt.format(now));
        System.out.println(myFmt1.format(now));
        System.out.println(myFmt2.format(now));
        System.out.println(myFmt3.format(now));
        System.out.println(myFmt4.format(now));

        System.out.println(now.toGMTString());// 17 Nov 2006 07:19:56 GMT
        System.out.println(now.toLocaleString());// 2006-11-17 15:19:56
        System.out.println(now.toString());// Fri Nov 17 15:19:56 CST 2006
    }   
   
}

 

注意事项

在使用SimpleDateFormat的经常会有一些错误的用法,例如如下方式:
public class TestDateFormat{
   private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
   public void method1(){
    sdf.format(new Date());
   }
   public void method2(){
    sdf.format(new Date());
   }
 )为了渐少new 的次数而把SimpleDateFormat做成成员或者静态成员,但这样的做法是隐含着错误的,是不
 安全的。如下给出证明:
 import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;


public class TestDateFormat{
  private SimpleDateFormat sdf ;
  public static void main(String[] args) {
    SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");
    Date date1 = new Date();
    Date date2 = new Date(date1.getTime()+1000*60*60*24);
    System.out.println(date1);
    System.out.println(date2);
    Thread thread1 = new Thread(new Thread1(sdf,date1));
    thread1.start();
    Thread thread2 = new Thread(new Thread2(sdf,date2));
    thread2.start();
  }
  
}
class Thread1 implements Runnable{
  private SimpleDateFormat sdf;
  private Date date;
  public Thread1(SimpleDateFormat sdf,Date date){
    this.sdf = sdf;
    this.date = date;
  }
  public void run() {
    for(;;){
      String strDate = sdf.format(date);
      if("2007-02-27".equals(strDate)){
        System.err.println("Error: date1="+strDate);
        System.exit(0);
      }
    }
  }
}
class Thread2 implements Runnable{
  private SimpleDateFormat sdf;
  private Date date;
  public Thread2(SimpleDateFormat sdf,Date date){
    this.sdf = sdf;
    this.date = date;
  }
  public void run() {
    for(;;){
      String strDate = sdf.format(date);
    

阅读更多
文章标签: SimpleDateFormat java
上一篇日期转换JSTL JSP 页面显示日期格式设置
下一篇tomcat 安装版本jvm设置
想对作者说点什么? 我来说一句

java常用方法集合

2017年08月16日 143KB 下载

没有更多推荐了,返回首页

关闭
关闭