之前有篇博客是使用NSDateFormatter来对时间进行格式化输出,但使用起来有点繁琐,今天介绍下最近刚刚使用的SimpleDateFormat.

 public class SimpleDateFormat extends DateFormat

日期和时间模式

日期和时间格式由日期和时间模式 字符串指定。在日期和时间模式字符串中,未加引号的字母 'A' 到 'Z' 和 'a' 到 'z' 被解释为模式字母,用来表示日期或时间字符串元素。文本可以使用单引号 (') 引起来,以免进行解释。"''" 表示单引号。所有其他字符均不解释;只是在格式化时将它们简单复制到输出字符串,或者在解析时与输入字符串进行匹配。

定义了以下模式字母(所有其他字符 'A' 到 'Z' 和 'a' 到 'z' 都被保留):

字母 日期或时间元素 表示 示例
G Era 标志符 Text AD
y Year 199696
M 年中的月份 Month JulyJul07
w 年中的周数 Number 27
W 月份中的周数 Number 2
D 年中的天数 Number 189
d 月份中的天数 Number 10
F 月份中的星期 Number 2
E 星期中的天数 Text TuesdayTue
a Am/pm 标记 Text PM
H 一天中的小时数(0-23) Number 0
k 一天中的小时数(1-24) Number 24
K am/pm 中的小时数(0-11) Number 0
h am/pm 中的小时数(1-12) Number 12
m 小时中的分钟数 Number 30
s 分钟中的秒数 Number 55
S 毫秒数 Number 978
z 时区 General time zone Pacific Standard TimePSTGMT-08:00
Z 时区 RFC 822 time zone -0800

示例

以下示例显示了如何在美国语言环境中解释日期和时间模式。给定的日期和时间为美国太平洋时区的本地时间 2001-07-04 12:08:56。

日期和时间模式 结果
"yyyy.MM.dd G 'at' HH:mm:ss z" 2001.07.04 AD at 12:08:56 PDT
"EEE, MMM d, ''yy" Wed, Jul 4, '01
"h:mm a" 12:08 PM
"hh 'o''clock' a, zzzz" 12 o'clock PM, Pacific Daylight Time
"K:mm a, z" 0:08 PM, PDT
"yyyyy.MMMMM.dd GGG hh:mm aaa" 02001.July.04 AD 12:08 PM
"EEE, d MMM yyyy HH:mm:ss Z" Wed, 4 Jul 2001 12:08:56 -0700
"yyMMddHHmmssZ" 010704120856-0700
"yyyy-MM-dd'T'HH:mm:ss.SSSZ" 2001-07-04T12:08:56.235-0700

常用构造方法 :

SimpleDateFormat sFormat = new SimpleDateFormat(String pattern);

或者

SimpleDateFormat sFormat = new SimpleDateFormat();

sFormat.applyPattern(String pattern);

或者

DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.FULL, Locale.getDefault());

//具体可取DateFormat.SHORT,DEFAULT,LONG,FULL等

示例代码

 public void testCalendar(){
Calendar c1 = Calendar.getInstance();
c1.setTime(new Date()); //当Calendar中设置的时间超过每项的最大值时,会以减去最大值后的值设置时间,例如月份设置13,最后会变成13-11=02
Calendar c2 = Calendar.getInstance();
c2.set(1920, 13, 24, 22, 32, 22);
//使用pattern
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd H:m:s");
SimpleDateFormat format2 = new SimpleDateFormat("yy-MM-dd H:m:s");
SimpleDateFormat format3 = new SimpleDateFormat("y-M-d H:m:s");
//使用约定格式 DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.FULL, Locale.getDefault());
//获取Calendar中各个属性字段的方法
log.info("The year now time is " + c1.get(c1.YEAR));
log.info("The month now time is " + c1.get(c1.MONTH));
log.info("The day_of_month now time is " + c1.get(c1.DAY_OF_MONTH));
log.info("The day_of_week now time is " + c1.get(c1.DAY_OF_WEEK));
log.info("今天是在这个月的第几个星期: " + c1.get(c1.DAY_OF_WEEK_IN_MONTH));
log.info("The day_of_year now time is " + c1.get(c1.DAY_OF_YEAR));
//不同模式对应的格式略有不同,有时间可以测试多一点模式
log.info("yyyy-MM-dd H:m:s-->" + format.format(c1.getTime()));
log.info("yy-MM-dd H:m:s-->" + format2.format(c1.getTime()));
log.info("y-M-d H:m:s-->" + format3.format(c1.getTime()));
log.info("DateFormat.FULL-->" + dateFormat.fomat(c1.getTime()));
log.info(format.format(c2.getTime()));
}

java-使用SImpleDateFormat格式化时间输出的更多相关文章

  1. 还在用SimpleDateFormat格式化时间?小心经理锤你

    还在用SimpleDateFormat格式化时间?小心经理锤你 场景 本来开开心心的周末时光,线上突然就疯狂报错,以为程序炸了,截停日志,发现是就是类似下述一段错误 java.lang.NumberF ...

  2. SimpleDateFormat 格式化时间少了12个小时

    SimpleDateFormat 格式化时间少了12个小时 标签(空格分隔): java SimpleDateFormat H:一天中的小时数:0-23 h: am/pm 小时数: 1-12 publ ...

  3. Java字符串的格式化与输出

    Java字符串的格式化与输出 在C语言中格式化输出能够通过printf()函数实现,在Java中无需借助第三方工具相同能够实现此功能.自Java SE5后,java也提供了C语言中printf()风格 ...

  4. java 日期的格式化 输入/输出

    想要得到形如2018.07.09的格式化好的当天日期 创建Date对象,调用SimpleDateFormat对象的format方法: indexstr="logstash-"+ne ...

  5. 记一次使用SimpleDateFormat 格式化时间时遇到的问题

    网上的使用方法一大堆,我就不再介绍了,就写一下自己遇到的问题. 先来实现一下获取当前时间: SimpleDateFormat simpleDateFormat =new SimpleDateForma ...

  6. java使用simpleDateFormat格式化日期 时间

    时间日期标识符: yyyy:年 MM:月 dd:日 hh:1~12小时制(1-12) HH:24小时制(0-23) mm:分 ss:秒 S:毫秒 E:星期几 D:一年中的第几天 F:一月中的第几个星期 ...

  7. java 使用simpleDateFormat格式化日期 时间.RP

    首先了解一下格式化日志的所有表示. 时间日期标识符: yyyy:年 MM:月 dd:日 hh:1~12小时制(1-12) HH:24小时制(0-23) mm:分 ss:秒 S:毫秒 E:星期几 D:一 ...

  8. mybatis DATE_FORMAT 格式化时间输出

    参考:http://www.cnblogs.com/yangy608/p/3950095.html 一.在oracle中,当想把字符串为‘2011-09-20 08:30:45’的格式转化为日期格式, ...

  9. JAVA格式化时间日期

    JAVA格式化时间日期 import java.util.Date; import java.text.DateFormat; /** * 格式化时间类 * DateFormat.FULL = 0 * ...

随机推荐

  1. 构建Java并发模型框架

    Java的多线程特性为构建高性能的应用提供了极大的方便,但是也带来了不少的麻烦.线程间同步.数据一致性等烦琐的问题需要细心的考虑,一不小心就会出现一些微妙的,难以调试的错误.另外,应用逻辑和线程逻辑纠 ...

  2. c数据结构第一个公式写程序计算给定多项式在给定点x处的值

    假设x=2,那么a的数组有几个, 那n就是根据索引来的 假设数组[, , , , ] n就是0, 1, 2,,3, 4 f = + ( + ( + ( + ()))) f = + ( + ( + ( ...

  3. 利用MATLAB进行曲线拟合

    软件环境:MATLAB2013a 一.多项式拟合 多项式拟合是利用多项式最佳地拟合观测数据,使得在观测数据点处的误差平方和最小. 在MATLAB中,利用函数ployfit和ployval进行多项式拟合 ...

  4. MongoDB MapReduce 小例子

    var map = function(){ if (this.gscode == "ZTJB"){ ymd = this.ymd; emit("maxymd", ...

  5. Lua------------------改善Unity编辑器对Lua文件的支持

    原创 2017年03月10日 18:44:22 标签: Unity / lua / 编辑器 952 当前版本的Unity(截至Unity5.5.x)中TextAsset类不支持后缀为lua的文件,将l ...

  6. 远程桌面连接工具 Remote Desktop Manager 9.1.2.0 Enterprise 多国语言绿色版附注册码 简单使用

    1:修改成中文简体 2: 注册破解  (记得一定要先断网)   admin admin@admin.com 31GKI-OK1HY-59H35-Y8GPB-8WDY6 3 : 创建连接   搞定

  7. 正则split

    string content = "第1行导入失败,失败原因为: <加班原因>字段必填"; string[] resultString = Regex.Split(co ...

  8. Intellij Idea反向生成Hibernate实体类

    每次根据数据库的表反向生成实体类老不记得步骤...脑子不够用,这里特意记录一下.碰到的问题也及时更新到这里来. 1. 工程添加Hibernate支持 两种方式: 第一种:工程上右键选择 "A ...

  9. MyBatis通用Mapper技巧

    一.排序 错误代码:example.orderBy(BaseEntity.Field.GMTUpdate + " desc"); 正确方式: 一是:通过注解 @OrderBy(va ...

  10. spring + springMVC + spring Data + jpa + maven 项目框架搭建

    首先看一下项目结构: 所用到的jar(pom.xml): <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:x ...