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常用方法说明整理

根据网上文章,进行的整理。   关键的参数   G 年代标志符   y 年   M 月   d 日   h 时 在上午或下午 (1~12)   H 时 在一天中 (0~23)   m...

Date ,Calendar以及 SimpleDateFormat类的常用方法

Date类    在 JDK 1.1 之前,类 Date 有两个其他的函数。它允许把日期解释为年、月、日、小时、分钟和秒值。它也允许格式化和解析日期字符串。不过,这些函数的 API 不易于实现国际...

java常用类库续1(日期操作类Date、Calendar、DateFormat、SimpleDateFormat、Math与Random类)

日期操作类(Date、Calendar) Date类 Date类是一个比较常用的类,但是其操作的日期格式会有一些不符合个人的要求,而如果想进一步取得自己想要的时间,则可以使用Calendar类。 ...

【Java常用类库】_日期操作类(DateFormat、SimpleDateFormat)笔记

【Java常用类库】_日期操作类(DateFormat、SimpleDateFormat)笔记  本章目标:  1.掌握日期格式化的操作  2.可以使用SimpleDateFormat进行日期格...

java calendar 常用功能总结(SimpleDateFormat 格式化取值)

Calendar java calendar 笔记 使用SimpleDateFormat时格式化时间的 yyyy.MM.dd 为年月日; 如果希望格式化时间为12小时制的,则使用hh:mm:ss;...

java中的常用类、Date和SimpleDateFormat类表示时间、java中基本类型和包装之间的转换

java中的常用类、Date和SimpleDateFormat类表示时间、java中基本类型和包装之间的转换 分类:java学习 (240) (0) 举报 收藏 与上一篇一样这篇依...

java中的常用类、Date和SimpleDateFormat类表示时间、java中基本类型和包装之间的转换

与上一篇一样这篇依旧是我在慕课网(www.imooc.com)学习java时写的笔记而已,想要看详细的还是去官网自己看。话不多说,开始学习了。 -----------------------分割线-...

Java SimpleDateFormat.setLenient(boolean lenient)方法使用

今天在做东西的时候看来了一个方法,即是SimpleDateFormat.setLenient(boolean lenient), 查了文档,文档解释如下: v0id setLe...

Java之——SimpleDateFormat 线程不安全问题及解决方法

今天,给大家带来一篇Java SimpleDateFormat在多线程环境下不安全的文章,Java SimpleDateFormat 是线程不安全的,当在多线程环境下使用一个DateFormat的时候...

Object的toString方法:Object的equals方法:System类的概念和构造:冒泡排序,自动装箱拆箱, Date类的常用方法:6 SimpleDateFormat的概述:

1  Object的toString方法: Java.long包下面的类不用导包。Object是类层次结构的根类@ 输出一个对象就是默认输出这个对象的toString()方法。 按住 Ctrl ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java的SimpleDateFormat常用方法说明整理
举报原因:
原因补充:

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