Java格式化Date为字符串的高级写法

    本文使用printf来进行格式化日期,不仅不需要创建DateFormat实例,又可以简化代码。

12345678910111213141516171819202122232425262728293031323334353637383940414243
private static void testDate() {        System.out.printf("%tc\n",new Date());  // Wed Jan 13 18:51:28 CST 2016 (完整的日期和时间)        /** 经常使用 **/        System.out.printf("%tF\n",new Date());  // 2016-01-13 (ISO 8061日期)        System.out.printf("%tD\n",new Date());  // 01/13/16 (美国格式的日期)        /** 经常使用 **/        System.out.printf("%tT\n",new Date());  // 18:51:28 (24小时时间)        System.out.printf("%tr\n",new Date());  // 06:51:28 PM (12小时时间)        System.out.printf("%tR\n",new Date());  // 18:51 (24小时时间没有秒)        System.out.printf("%tY\n",new Date());  // 2016 (4位数字的年(前面补0))        System.out.printf("%ty\n",new Date());  // 16 (年的后两位数字(前面补0))        System.out.printf("%tC\n",new Date());  // 20 (年的前两位数字(前面补0))        System.out.printf("%tb\n",new Date());  // Jan (月的缩写)        System.out.printf("%tB\n",new Date());        System.out.printf("%tm\n",new Date());  // 01 (两位数字的月(前面补0))        System.out.printf("%td\n",new Date());  // 13 (两位数字的日(前面补0))        System.out.printf("%te\n",new Date());  // 13 (两位数字的日(前面不补0))        System.out.printf("%tA\n",new Date());  // Wednesday (星期几的完整拼写)        System.out.printf("%ta\n",new Date());  // Wed (星期几的缩写)        System.out.printf("%tj\n",new Date());  // 013 (三位数的年中的日子(前面补0),在001到366之间)        System.out.printf("%tH\n",new Date());  // 18 (两位数字的小时(前面补0),在0到23之间)        System.out.printf("%tk\n",new Date());  // 18 (两位数字的小时(前面不补0)在0到23之间)        System.out.printf("%tI\n",new Date());  // 06 (两位数字的小时(前面补0),在0到12之间)        System.out.printf("%tl\n",new Date());  // 6 (两位数字的小时(前面不补0),在0到12之间)        System.out.printf("%tM\n",new Date());  // 51 (两位数字的分钟(前面补0))        System.out.printf("%tS\n",new Date());  // 28 (两位数字的秒(前面补0))        System.out.printf("%tL\n",new Date());  // 886 (三位数字的毫秒(前面补0))        System.out.printf("%tN\n",new Date());  // 886000000 (九位数字的毫微秒(前面补0))        System.out.printf("%tp\n",new Date());  // pm (上午或者下午的小写标志)//        System.out.printf("%tP\n",new Date());//此方法报错 应该和时区有关系        System.out.printf("%tz\n",new Date());  // +0800 (从GMT起,RFC822数字移位)        System.out.printf("%tZ\n",new Date());  // CST (时区)        System.out.printf("%ts\n",new Date());  // 1452682288 (从格林威治时间1970-01-01 00:00:00起的秒数)        System.out.printf("%tQ\n",new Date());  // 1452682288886 (从格林威治时间1970-01-01 00:00:01起的毫秒数)

/** 高级输出时间格式 **/        String fullDate = String.format("%1$s%2$tY-%2$tm-%2$td %2$tT", "Due Date: ", new Date());   //Due Date: 2016-01-13 16:45:21        String fullDate2 = String.format("%s%tY-%<tm-%<td %<tT", "Due Date: ", new Date());    //Due Date: 2016-01-13 16:45:21        String fullDate3 = String.format("%s%tF %<tT", "Due Date: ", new Date());   //Due Date: 2016-01-13 16:45:21        System.out.println(fullDate);        System.out.println(fullDate2);        System.out.println(fullDate3);    }

如果参数超过一个,那就必须在 % 后面指定参数的索引,并以 $ 终止。

还可以使用 < 标志, 这样就不用使用索引来指定位置了。

是不是很方便呢?

时间: 2024-08-03 11:47:31

Java格式化Date为字符串的高级写法的相关文章

《Java入门经典(第7版)》—— 6.6 字符串的高级处理

6.6 字符串的高级处理 还有多种其他方式可用于查看字符串变量和修改其值.之所以有这些高级功能,是因为字符串在Java语言中是对象.通过处理字符串对象获得的知识,也适用于其他对象. 6.6.1 比较两个字符串 在程序中经常要测试两个字符串是否相等,为此可在带有两个字符串的语句之中使用equals(),如下所示: String favorite = "chainsaw"; String guess = "pool cue"; System.out.println(&q

String类型怎么装换为java.sql.Date类型

问题描述 String类型怎么装换为java.sql.Date类型 在java中如何将String类型转换成java.sql.Date类型 解决方案 问题出在你的格式化字符串上.参考官网文档Class SimpleDateFormat格式化字符串是有保留字符的,每个字符代表不同的意义,区分大小写.大写的M表示的是月份,不是说你用在的时间的位置它就表示时间了.所以把时间格式化字符串改成yyyy-MM-dd HH:mm:ss,就能正确输出了. 解决方案二: 在java中如何将String类型转换成j

数据库-java中Date类型如何与mysql中的datetime类型联系

问题描述 java中Date类型如何与mysql中的datetime类型联系 我在Mysql中建了一个datetime类型的数据 然后想在java中用Date类型来获取当前时间(变量名为inTime)并添加到数据库中 构造了一个函数,在传参数的时候应该怎么传, 还是到底是Import java.util.Date还是import java.sql.Date 并且我希望的时间格式为:2016-01-04 21:09:23 构造函数这样写对吗 public CheckIn( java.sql.Dat

Java中Date与String相互转换的方法_java

我们在注册网站的时候,往往需要填写个人信息,如姓名,年龄,出生日期等,在页面上的出生日期的值传递到后台的时候是一个字符串,而我们存入数据库的时候确需要一个日期类型,反过来,在页面上显示的时候,需要从数据库获取出生日期,此时该类型为日期类型,然后需要将该日期类型转为字符串显示在页面上,Java的API中为我们提供了日期与字符串相互转运的类DateForamt.DateForamt是一个抽象类,所以平时使用的是它的子类SimpleDateFormat.SimpleDateFormat有4个构造函数,

java格式化时间示例_java

实现日期的格式化,需要用到类: java.text.DateFormat DateFormat没有可以直接使用的构造函数,一般使用DateFormate的子类---java.text.SimpleDateFormat完成构造. public SimpleDateFormat(String pattern) 测试代码 复制代码 代码如下: import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.D

Java中Date类和Calendar类的常用实例小结_java

前言写后台程序的时候,经常需要存储当前服务器的时间戳,使用时间戳也很方便,客户端和服务器端都可以根据自己的需求做各自的转换 在php里,获取当前时间戳使用time()函数,格式化输出通过Date()函数即可,Java里相对复杂一些,这里简单介绍一下 Java语言中的Calendar,Date,DateFormat组成了Java标准的一个基本但是非常重要的部分.日期是商业逻辑计算一个关键的部分,所有的开发者都应该能计算未来的日期,定制日期的显示格式,并将文本数据解析成日期对象 获取UNIX时间戳在

举例讲解Java中数组和字符串类型的使用方法_java

Java数组 数组是具有相同数据类型的一组数据的集合,Java支持多为数组,一维数组的每个基本单元都是基本数据类型的数据,二维数组就是每个基本单元是一维数组的一维数组,以此类推,n维数组的每个基本单元都是n-1为数组的n-1维数组.下面以一维数组为例说明Java数组的用法. 1.数组声明 数组声明有如下两种形式(方括号的位置不同): int arr[]; int[] arr2; 2.数组初始化 数组初始化也有两种形式,如下(使用new或不使用new): int arr[] = new int[]

Java.util.Date类型的转化成为数据库中的Date类型。

最完整的一个网页:http://www.zxbc.cn/html/20080905/65272.html   作者:天涯 来源:中国自学编程网 发布日期:1220576012 在JDK 1.1后,java.util.Date 类型的大多数方法已经不推荐使用了.代替它的是Calendar. 而在java.sql.Date 和 java.util.Date之间,有些微妙的关系. 如何将Date类型插入数据库中,成为好多人的一个不小的障碍. 当然,并不一定要在外部插入时间,因为在数据库中,可以让它自动

Java中Date与String的相互转换的例子

我们在注册网站的时候,往往需要填写个人信息,如姓名,年龄,出生日期等,在页面上的出生日期的值传递到后台的时候是一个字符串,而我们存入数据库的时候确需要一个日期类型,反过来,在页面上显示的时候,需要从数据库获取出生日期,此时该类型为日期类型,然后需要将该日期类型转为字符串显示在页面上,Java的API中为我们提供了日期与字符串相互转运的类DateForamt.DateForamt是一个抽象类,所以平时使用的是它的子类SimpleDateFormat.SimpleDateFormat有4个构造函数,