java.text.SimpleDateFormat的使用

来源:互联网 发布:怎样开通淘宝 编辑:程序博客网 时间:2024/05/27 02:26

点击打开链接

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 字母被保留为模式字母,定义如下:

 符号    含义                   表示               示例
 ------  -------                ------------   -------
       年代标志符             (Text)             AD
       年                     (Number)           1996
       月                     (Text &Number)    July & 07
       日                     (Number)           10
       时 在上午或下午 (1~12) (Number)           12
       时 在一天中(0~23)     (Number)           0
       分                     (Number)           30
       秒                     (Number)           55
       毫秒                   (Number)           978
       星期                   (Text)             Tuesday
       一年中的第几天         (Number)           189
       一月中第几个星期几     (Number)            (2nd Wed in July)
       一年中第几个星期       (Number)           27
       一月中第几个星期       (Number)           2
       上午 / 下午标记符     (Text)             PM
       时 在一天中(1~24)     (Number)           24
       时 在上午或下午 (0~11) (Number)           0
       时区                   (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:ssz"   ->>  1996.07.10 AD at 15:08:56 PDT
 "EEE, MMM d,''yy"               ->>  Wed, July 10, '96
 "h:mma"                         ->>  12:08 PM
 "hh 'o''clock' a,zzzz"          ->>  12 o'clock PM, Pacific DaylightTime
 "K:mm a,z"                      ->>  0:00 PM, PST
 "yyyyy.MMMMM.dd GGG hh:mmaaa"   ->>  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 aDate.
 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=(newSimpleDateFormat("yyyy-MM-dd")).format(ddate);
2、String——>Date
SimpleDateFormat sdf=newSimpleDateFormat("yyyy-MM-dd");
sdf.setLenient(false);
Stringsdate="2006-06-06";
Date ddate;
ddate=sdf.parse(sdate);

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 南京犬类免疫证怎么办 合肥犬类免疫证怎么办 快递号码写错了怎么办 网购下单后商家说没有货该怎么办 京东账号换手机怎么办 手机不发验证码怎么办 京东打白条分期付款额度不够怎么办 网易云音乐昵称被占用怎么办 ebay账号邮箱忘了怎么办 易贝账号邮箱忘了怎么办 运动鞋网上擦了黑鞋油怎么办 真皮鞋用水洗了怎么办 支付宝余额限额了怎么办 微信余额转账限额怎么办 微信充值话费充错了怎么办 京东白条月限额怎么办 淘手游上买的账号被找回了怎么办 手机看视频缓冲慢怎么办 wan口状态未连接怎么办 王者荣耀本地回放过期怎么办 qq邮件发错了怎么办 千叶钻戒换款怎么办 车钥匙掉厕所了怎么办 宿舍有个整晚磨牙的室友该怎么办 百度云照片压缩后模糊怎么办 手机点+号无法上传图片怎么办 支付宝账户支付功能关闭怎么办 一件衣服买小了怎么办 交行u盾密码忘了怎么办 老婆婚内出轨丈夫应该怎么办 微信小程序获取用户信息失败怎么办 拼多多砍价没有完成怎么办 微信人数上限了怎么办 微信5000人满了怎么办 微信朋友满了怎么办啊 失业金签到忘签怎么办 gec安全密码忘了怎么办 唯品会微信商城地址错怎么办跨省 电脑突然没网了怎么办 移动光猫只能连一台电脑怎么办 网上银行用户名和密码忘了怎么办