java.text.SimpleDateFormat的使用
 
java.lang.Object
   |
   +----java.text.Format
           |
           +----java.text.DateFormat
                   |
                   +----java.text.SimpleDateFormat

--------------------------------------------------------------------------------

public class SimpleDateFormat
extends DateFormat
SimpleDateFormat 是一个以国别敏感的方式格式化和分析数据的具体类。 它允许格式化 (date -> text)、语法分析 (text -> date)和标准化。

SimpleDateFormat 允许以为日期-时间格式化选择任何用户指定的方式启动。 但是,希望用 DateFormat 中的 getTimeInstance、 getDateInstance 或 getDateTimeInstance 创建一个日期-时间格式化程序。每个类方法返回一个以缺省格式化方式初始化的日期/时间格式化程序。可以根据需要用 applyPattern 方法修改格式化方式。 关于使用这些方法的更多信息,请参见 DateFormat。

时间格式语法:

使用一个 time pattern 字符串指定时间格式。在这种方式下,所有的 ASCII 字母被保留为模式字母,定义如下:

符号     含义                    表示                示例
 ------   -------                 ------------    -------
 G        年代标志符              (Text)              AD
 y        年                      (Number)            1996
 M        月                      (Text & Number)     July & 07
 d        日                      (Number)            10
 h        时 在上午或下午 (1~12)  (Number)            12
 H        时 在一天中 (0~23)      (Number)            0
 m        分                      (Number)            30
 s        秒                      (Number)            55
 S        毫秒                    (Number)            978
 E        星期                    (Text)              Tuesday
 D        一年中的第几天          (Number)            189
 F        一月中第几个星期几      (Number)            2  (2nd Wed in July)
 w        一年中第几个星期        (Number)            27
 W        一月中第几个星期        (Number)            2
 a        上午 / 下午 标记符      (Text)              PM
 k        时 在一天中 (1~24)      (Number)            24
 K        时 在上午或下午 (0~11)  (Number)            0
 z        时区                    (Text)      Pacific Standard Time
 '        文本转义符              (Delimiter)
 ''       单引号                  (Literal)           '

模式字母的数目决定了格式。
(Text):4 个或更多模式字母 -- 使用完全形式, < 4 -- 使用短形式或缩写形式,如果存在。

(Number):数字的最小位数。 短数字前面加零。Year 作特殊处理;即,如果 'y' 的位数是 2,Year 将被截取为 2 位。

(Text & Number):3 位或多于 3 位,使用文本,否则使用数值。

在该模式下,任何不在范围 ['a'..'z'] 和 ['A'..'Z'] 中的字符将被作为被括起来的文本。 例如,诸如 ':'、'.'、' '、'#' 和 '@' 的字符将出现在结果时间文本中,即使它们没有用单引号括起来。

一个包含任何无效模式字母的模式在格式化或语法分析时将抛出异常。

使用 US 语言环境的示例:

格式化模式                             结果
 --------------                         -------
 "yyyy.MM.dd G 'at' hh:mm:ss z"    ->>  1996.07.10 AD at 15:08:56 PDT
 "EEE, MMM d, ''yy"                ->>  Wed, July 10, '96
 "h:mm a"                          ->>  12:08 PM
 "hh 'o''clock' a, zzzz"           ->>  12 o'clock PM, Pacific Daylight Time
 "K:mm a, z"                       ->>  0:00 PM, PST
 "yyyyy.MMMMM.dd GGG hh:mm aaa"    ->>  1996.July.10 AD 12:08 PM

代码示例:
 
 SimpleTimeZone pdt = new SimpleTimeZone(-8 * 60 * 60 * 1000, "PST");
 pdt.setStartRule(DateFields.APRIL, 1, DateFields.SUNDAY, 2*60*60*1000);
 pdt.setEndRule(DateFields.OCTOBER, -1, DateFields.SUNDAY, 2*60*60*1000);
 // Format the current time.
 SimpleDateFormat formatter
     = new SimpleDateFormat ("yyyy.mm.dd e 'at' hh:mm:ss a zzz");
 Date currentTime_1 = new Date();
 String dateString = formatter.format(currentTime_1);
 // Parse the previous string back into a Date.
 ParsePosition pos = new ParsePosition(0);
 Date currentTime_2 = formatter.parse(dateString, pos);

在本例中,由分析获得的时间值 currentTime_2 将与 currentTime_1 相等。但是如果当使用“时在上午/下午”模式符号时,在该格式化模式中省略 am/pm 标记符 'a',它们可能不相等。 当格式化下午的时间时,可能会丢失这个信息。
当分析一个使用缩写的年模式的数字串时,SimpleDateFormat 必须解释把缩写的年与某个世纪相对应。它通过把日期调整到 SimpleDateFormat 实例创建时间 80 年以前至 20 年以后的范围内进行解释。例如,使用 MM/dd/yy 模式和在 1997 年 1 月 1 日 创建的 SimpleDateFormat 实例,字符串 "01/11/12" 将被解释为 2012 年 1 月 11 日,而字符串 "05/04/64" 将被解释为1964 年 5 月 4 日。

对于没有名字的时区,使用字符串 GMT+hours:minutes 或 GMT-hours:minutes。

日历定义了一个星期的第一天,一年的第一个星期,小时是否以零开始 (0 到 12 或 24) 和时区。有一种公共的十进制格式处理所有数字;数字位数由程序根据该模式处理。

1、Date——>String
String sdate;
Date ddate;
……
sdate=(new SimpleDateFormat("yyyy-MM-dd")).format(ddate);
2、String——>Date
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
sdf.setLenient(false);
String sdate="2006-06-06";
Date ddate;
ddate=sdf.parse(sdate);

java.text.SimpleDateFormat使用介绍的更多相关文章

  1. 【java】Date与String之间的转换及Calendar类:java.text.SimpleDateFormat、public Date parse(String source) throws ParseException和public final String format(Date date)

    package 日期日历类; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util. ...

  2. Java-API:java.text.SimpleDateFormat

    ylbtech-Java-API:java.text.SimpleDateFormat 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部 0. https://do ...

  3. java.text.SimpleDateFormat的使用

    SimpleDateFormat 是一个以国别敏感的方式格式化和分析数据的具体类. 它允许格式化 (date -> text).语法分析 (text -> date)和标准化. Simpl ...

  4. ArcSDE SDK For Java二次开发介绍、演示样例

    在一个工作中,遇到了须要java后台来查询ArcGIS 中用到的Oracle数据库空间数据,因为对ArcGIS空间数据首次接触,仅仅知道Oracle能够使用ST_GEOMETRY字段存储,例如以下图 ...

  5. 【转】深入理解Java:SimpleDateFormat安全的时间格式化

    [转]深入理解Java:SimpleDateFormat安全的时间格式化 想必大家对SimpleDateFormat并不陌生.SimpleDateFormat 是 Java 中一个非常常用的类,该类用 ...

  6. Java中SimpleDateFormat用法详解

    所有已实现的接口: Serializable, Cloneable SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类.它允许进行格式化(日期 -> 文本) ...

  7. 常用类一一时间处理相关类一一java.util.Tomezone(java.util.Calendar , java.util.Date , java.text.DateFormat)

    时间处理相关类 时间是一个一维的东东.所以,我们需要一把刻度尺来区表达和度量时间.在计算机世界,我们把1970 年 1 月 1 日 00:00:00定为基准时间,每个度量单位是毫秒(1秒的千分之一). ...

  8. Java Date SimpleDateFormat

    public static void main(String[] args) { long millis = 1492741275301L; Calendar calendar = Calendar. ...

  9. Date类(java.util)和SimpleDateFormat类(java.text)

    在程序开发中,经常需要处理日期和时间的相关数据,此时我们可以使用 java.util 包中的 Date 类.这个类最主要的作用就是获取当前时间,我们来看下 Date 类的使用: 使用 Date 类的默 ...

随机推荐

  1. logback参考配置

    logback配置 <?xml version="1.0" encoding="UTF-8"?> <configuration> < ...

  2. windows静态库的使用

    最近在学Zeromq(像框架一样的一个socket library)的使用,里面有关于库的使用问题.今天就来复习下静态库的使用: 使用静态库是重用代码的一种绝佳方式.您不必在自己创建的每个程序中重新实 ...

  3. SQL宝典

    SQL Server 数据库的高级操作 (1) 批处理 (2) 变量 (3) 逻辑控制 (4) 函数 (5) 高级查询 */ (1)批处理 将多条SQL语句作为一个整体去编译,生成一个执行计划,然后, ...

  4. 将字符“12345”转换成long型

    将字符“12345”转换成long型 解答: String s=”12345″; long num=Long.valueOf(s).longValue();

  5. 关闭ReSharper中的[ Use 'var' ]提示(Disable C# “var” Recommendation in ReSharper)

    ReSharper,确实是个很不错的工具,代码如果写得不规范他会提示,而且可以根据自己公司的需求自定义代码规范. 默认设置的提示已经相当完美,但美中不足就是老提示你用var来代替所有类型. 按以下步骤 ...

  6. Java多线程基础知识总结

    2016-07-18 15:40:51 Java 多线程基础 1. 线程和进程 1.1 进程的概念 进程是表示资源分配的基本单位,又是调度运行的基本单位.例如,用户运行自己的程序,系统就创建一个进程, ...

  7. vim 命令大全(写的非常全和好)http://blog.csdn.net/woshixiaosimao/article/details/54312738

    下文转自链接.由原作者陈皓译自<Learn ViM Progressively>,非常不错. ——————————正文开始—————————— 你想以最快的速度学习人类史上最好的文本编辑器 ...

  8. VC++Debug查看堆对象内容,即使符号已经超出作用范围

    Sometimes you'd like to watch the value of an object (on the heap) even after the symbol goes of sco ...

  9. iOS应用开发最佳实践:编写高质量的Objective-C代码

    本文转载至 http://www.cocoachina.com/industry/20131129/7445.html 点标记语法 属性和幂等方法(多次调用和一次调用返回的结果相同)使用点标记语法访问 ...

  10. CentOS7.0 安装 Nginx

    记录下,方便以后查阅. 1.安装依赖库 yum install gcc-c++ yum install pcre pcre-devel yum install zlib zlib-devel yum ...