Java的SimpleDateFormat常用方法说明整理

转载 2013年12月03日 16:14:05
根据网上文章,进行的整理。

关键的参数

  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);
    

Java的SimpleDateFormat常用方法说明整理(转)

原文:http://blog.sina.com.cn/s/blog_6cd73dfb0100zq78.html 根据网上文章,进行的整理。 关键的参数 G 年代标志符 y 年 M 月 d...
  • a657282694
  • a657282694
  • 2014年01月10日 14:51
  • 426

SimpleDateFormat的常用方法说明

G 年代标志符  y 年  M 月  d 日  h 时 在上午或下午 (1~12)  H 时 在一天中 (0~23)  m 分  s 秒  S 毫秒  E 星期  D 一年中的第几天  F 一月中第几...
  • yingwen_lv625
  • yingwen_lv625
  • 2011年02月13日 15:03
  • 433

有关SimpleDateFormat的常用方法说明

//////////////////////////////////////////首先说明一下关键的参数  G 年代标志符  y 年  M 月  d 日  h 时 在上午或下午 (1~12)  H ...
  • ybyb14
  • ybyb14
  • 2007年08月22日 11:41
  • 643

有关SimpleDateFormat的常用方法说明

//////////////////////////////////////////首先说明一下关键的参数  G 年代标志符  y 年  M 月  d 日  h 时 在上午或下午 (1~12)  H ...
  • yinbodotcc
  • yinbodotcc
  • 2006年11月17日 15:37
  • 21418

【转贴】SimpleDateFormat的常用方法说明

有关SimpleDateFormat的常用方法说明首先说明一下关键的参数G 年代标志符y 年M 月d 日h 时 在上午或下午 (1~12)H 时 在一天中 (0~23)m 分s 秒S 毫秒E 星期D ...
  • blueseesea
  • blueseesea
  • 2008年02月27日 19:19
  • 682

java中使用SimpleDateFormat实现字符串和日期的相互转换

java中使用SimpleDateFormat实现字符串和日期的相互转换 import java.text.ParseException; import java.text.SimpleDate...
  • A__17
  • A__17
  • 2016年11月10日 20:58
  • 5975

SimpleDateFormat 的线程安全问题与解决方案

SimpleDateFormat 是一个以国别敏感的方式格式化和分析数据的具体类。 它允许格式化 (date -> text)、语法分析 (text -> date)和标准化。 但是 SimpleDa...
  • zq602316498
  • zq602316498
  • 2014年10月19日 17:23
  • 4990

Java中DateTime和SimpleDateFormat的性能比较

java中格式化日期方法的选择
  • cxd275050943
  • cxd275050943
  • 2017年07月05日 14:25
  • 631

关于SimpleDateFormat安全的时间格式化线程安全问题

想必大家对SimpleDateFormat并不陌生。SimpleDateFormat 是 Java 中一个非常常用的类,该类用来对日期字符串进行解析和格式化输出,但如果使用不小心会导致非常微妙和难以调...
  • zxh87
  • zxh87
  • 2014年02月18日 16:19
  • 21068

Mac常用功能整理

Mac常用功能整理(更新中)说明:使用Mac系统时有时遇到各种问题,如常用的快捷键,为方便以后查询,故将其整理如下,也希望对需要的朋友有所帮助,以后有新的整理时再更新。 Mac常用快捷键整理 com...
  • xiaoyaoyou1212
  • xiaoyaoyou1212
  • 2016年01月17日 17:06
  • 698
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java的SimpleDateFormat常用方法说明整理
举报原因:
原因补充:

(最多只允许输入30个字)