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.text.SimpleDateFormat使用介绍

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

  3. Java-API:java.text.SimpleDateFormat

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

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

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

  5. Java中SimpleDateFormat用法详解

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

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

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

  7. Java Date SimpleDateFormat

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

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

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

  9. java.text.DateFormat 多线程并发问题

    在日常开发中,java.text.DateFormat 应该算是使用频率比较高的一个工具类,经常会使用它 将 Date 对象转换成字符串日期,或者将字符串日期转化成 Date 对象.先来看一段眼熟的代 ...

随机推荐

  1. python函数进阶

    知识内容: 1.函数即变量 2.嵌套函数 3.lambda表达式与匿名函数 4.递归函数 5.函数式编程简介 6.高阶函数与闭包 一.函数即变量 1.变量的本质 声明一个变量,在python里本质上讲 ...

  2. python中的模块及包及软件目录结构规范

    知识内容: 1.模块的定义与分类 2.模块的导入 3.模块与包 4.不同目录下的模块调用 一.模块的定义与分类 1.什么是模块 模块就是实现了某个功能的代码集合,模块是由一大堆代码构成的 类似于函数式 ...

  3. UVA350-水题

    #include<iostream> using namespace std; int main() { int c = 0; int Z, L, I, M; while (cin > ...

  4. MyEclipse: Java代码与UML自动转换

    第一步:新建UML2 第二步:拖拽左边的代码向右侧

  5. DOS系统变量

    %ALLUSERSPROFILE% : 列出所有用户Profile文件位置.%APPDATA% : 列出应用程序数据的默认存放位置.%CD% : 列出当前目录.%CLIENTNAME% : 列出联接到 ...

  6. fb 发布桌面应用图标

    1.以src文件夹为根目录,即图标放在src文件内 2.修改app.xml文件icon,按尺寸填入,如下图 同时可修改app应用的名字,接受中文,如下图红色涂鸦: 导出发行版的时候,注意打包内容有么有 ...

  7. as3 加载库声音报错

    排除法:(依次排序,从简单到难) 1.引用的声音类名与声音链接名字是否一致,可trace声音对象字符串检验 2.引用的声音对象是否不存在 ,可trace声音对象检验 3.最后检验是否当前swf中,其中 ...

  8. pycharm专业版(window)安装

    1.官网下载 2. 3.直接finlsh 4. 5. https://pan.baidu.com/s/1mQcc98iJS5bnIyrC6097yA   密码:b1c1

  9. springMVC学习记录2-使用注解配置

    前面说了一下使用xml配置springmvc,下面再说说注解配置.项目如下: 业务很简单,主页和输入用户名和密码进行登陆的页面. 看一下springmvc的配置文件: <?xml version ...

  10. 【转】Luajit-2.1.0-beta1的发布和生成arm64用bytecode的解脱

    来自:Luajit-2.1.0-beta1的发布和生成arm64用bytecode的解脱 前情提要:由于苹果要求2015年2月1日上架的新app必须支持64位的arm64,旧的app也得在6月1日支持 ...