java.text.SimpleDateFormat的使用
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)
和时区。有一种公共的十进制格式处理所有数字;数字位数由程序根据该模式处理。
java.text.SimpleDateFormat的使用的更多相关文章
- 【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. ...
- java.text.SimpleDateFormat使用介绍
java.text.SimpleDateFormat的使用 java.lang.Object | +----java.text.Format | +-- ...
- Java-API:java.text.SimpleDateFormat
ylbtech-Java-API:java.text.SimpleDateFormat 1.返回顶部 2.返回顶部 3.返回顶部 4.返回顶部 5.返回顶部 0. https://do ...
- 【转】深入理解Java:SimpleDateFormat安全的时间格式化
[转]深入理解Java:SimpleDateFormat安全的时间格式化 想必大家对SimpleDateFormat并不陌生.SimpleDateFormat 是 Java 中一个非常常用的类,该类用 ...
- Java中SimpleDateFormat用法详解
所有已实现的接口: Serializable, Cloneable SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类.它允许进行格式化(日期 -> 文本) ...
- 常用类一一时间处理相关类一一java.util.Tomezone(java.util.Calendar , java.util.Date , java.text.DateFormat)
时间处理相关类 时间是一个一维的东东.所以,我们需要一把刻度尺来区表达和度量时间.在计算机世界,我们把1970 年 1 月 1 日 00:00:00定为基准时间,每个度量单位是毫秒(1秒的千分之一). ...
- Java Date SimpleDateFormat
public static void main(String[] args) { long millis = 1492741275301L; Calendar calendar = Calendar. ...
- Date类(java.util)和SimpleDateFormat类(java.text)
在程序开发中,经常需要处理日期和时间的相关数据,此时我们可以使用 java.util 包中的 Date 类.这个类最主要的作用就是获取当前时间,我们来看下 Date 类的使用: 使用 Date 类的默 ...
- java.text.DateFormat 多线程并发问题
在日常开发中,java.text.DateFormat 应该算是使用频率比较高的一个工具类,经常会使用它 将 Date 对象转换成字符串日期,或者将字符串日期转化成 Date 对象.先来看一段眼熟的代 ...
随机推荐
- [Delphi] 快速获取文件大小
function GetFileSize(const fName: AnsiString): Int64; var hFile: THandle; begin hFile := _lopen(PAns ...
- uva-639-枚举
题意: 象棋里的車可以吃横竖的車,题目加了一个墙,用于阻断攻击,问4x4的棋盘最多可以放多少只車, 思路:枚举每一个点,2^16次方种情况 #include<stdio.h> #inclu ...
- spring security 参考 和 例子
参考1: https://docs.spring.io/spring-security/site/docs/5.0.1.BUILD-SNAPSHOT/reference/htmlsingle/ 列子: ...
- JAVA 读取配置文件 xxx.properties
package config_demo; import java.io.InputStream; import java.util.Properties; public class UrlDemo { ...
- mysql 存储过程实例
--存储过程名和参数,参数中in表示传入参数,out标示传出参数,inout表示传入传出参数 create procedure p_procedurecode(in sumdate varchar(1 ...
- hibernate 三种状态
JPA是Java Persistence API的简称,中文名Java持久层API. 因JPA是由Hibernate的创建者编写,因此和Hibernate基本相似一致.JPA由不同的服务解析,因此在w ...
- mysql创建定时器(event),查看定时器,打开定时器,设置定时器时间
由于项目需要创建定时器(evevt),所以就百度了一下,发现基本都是来源于一个模板,有些功能还不全,现在自己总结一下. 注:mysql版本是从5.1开始才支持event的.如果你的版本低于5.1就先升 ...
- java工程中不能存在多个数据库连接jar包
java工程中不能存在多个数据库连接jar包 比如存在mysql-java-connector.jar的,放入mssqlserver.jar就会产生冲突.只能存在一个类型的jar包.
- 启动startUML的时候报错“"Exception EOleSysError in module StarUML.exe at 000AD559. "
win7操作系统在安装startuml的时候总是报错 出现了如下错误提示:"Exception EOleSysError in module StarUML.exe at 000AD559. ...
- How to Pronounce the I in ING
How to Pronounce the I in ING Share Tweet Share Tagged With: ING Verbs The I in ING is the IH as in ...