Java数字日期时间格式化处理
2016-02-04 14:34
996 查看
包含数字格式化DecimalFormat。日期时间格式化String.format()、SimpleDateFormat
1、十进制数字格式化
使用DecimalFormat类(十进制数格式化)格式化数字,使用。DecimalFormat是NumberFormat的一个子类,用于格式化十进制数字。它将一些数字格式化为整数、浮点数、科学计数法、百分数等。通过使用该类可以为要输出的数字加上单位或控制数字的精度。一般情况可以在实例化DecimalFormat对象时传递数字格式(API中不推荐),也可以通过DecimalFormat类中的applyPattern()方法来实现数字格式化。继承关系如下:java.lang.Object
|-- java.text.Format
|-- java.text.NumberFormat //抽象类
|-- java.text.DecimalFormat
格式化符号参数如下:
0 | 一个数字 |
# | 一个数字,不包括 0 |
. | 小数的分隔符的占位符 |
, | 分组分隔符的占位符 |
; | 分隔格式。 |
- | 缺省负数前缀。 |
% | 乘以 100 和作为百分比显示 |
? | 乘以 1000 和作为千进制货币符显示;用货币符号代替;如果双写,用 国际货币符号代替。如果出现在一个模式中,用货币十进制分隔符代 替十进制分隔符。 |
X | 前缀或后缀中使用的任何其它字符,用来引用前缀或后缀中的特殊字符 |
测试代码如下:
DecimalFormat df1 = new DecimalFormat("0.0");//00.0或.0使用一样 DecimalFormat df2 = new DecimalFormat("#.#"); Decim 4000 alFormat df3 = new DecimalFormat("0000.0000");//不足位自动补0 DecimalFormat df4 = new DecimalFormat("###.#####");//不足位不显示 //df1.applyPattern("#.##");//此方法改变格式 System.out.println(df1.format(012.345));//输出12.3 System.out.println(df2.format(012.345)); //输出12.3 System.out.println(df3.format(012.345)); //输出0012.3450 System.out.println(df4.format(012.0345)); //输出12.0345
注意:DecimalFormat 通常不是同步的。建议为每个线程创建独立的格式实例。如果多个线程同时访问某个格式,则必须保持外部同步。
本文简单数字格式化使用,深入了解和具体方法详细使用参见API文档。
2、日期时间格式化
2.1使用String.format()方法,
方法讲解:(多个参数对应format字符串中可能有多个格式化转换符,类似C语言)1)下面是使用format的日期格式化
代码实例:
Date today=new Date(); System.out.println(String.format(Locale.US,"%tb", today)); System.out.println(String.format(Locale.US,"%tB", today)); System.out.println(String.format("%ta", today)); System.out.println(String.format("%tA", today)); System.out.println(String.format("%tY", today)); System.out.println(String.format("%ty", today)); System.out.println(String.format("%tm", today)); System.out.println(String.format("%td", today)); System.out.println(String.format("这里可以添加文字,C语言printf格式化相似:%te", today)); System.out.println(String.format("可以多个格式化:%tY-%tm-%te", today, today, today));输出结果如下:
Feb February 星期四 星期四 2016 16 02 04 这里可以添加文字,C语言printf格式化相似:4 可以多个格式化:2016-02-4
2)下面是使用format的时间格式化
使用format()方法对时间格式化时,用到时间格式化转换符。常用时间格式化转换符如表所示:代码实例如下:
Date today=new Date(); System.out.println(String.format("%tH", today)); System.out.println(String.format("%tI", today)); System.out.println(String.format("%tk", today)); System.out.println(String.format("%tl", today)); System.out.println(String.format("%tM", today)); System.out.println(String.format("%tS", today)); System.out.println(String.format("%tZ", today)); System.out.println(String.format("%tp", today)); System.out.println(String.format("可以多个格式化:%tY-%tm-%te %tH:%tM:%tS", today, today, today, today, today, today));输出结果:
13 01 13 1 22 18 CST 下午 可以多个格式化:2016-02-4 13:22:18
2.2使用java.text.SimpleDateFormat类,
使用SimpleDateFormat类,格式化时间。常用的实例化使用如下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等
格式化字符如下:
示例:
获取日期类处理的方法如下:(具体参见API,时间使用中有许多方法已被弃用,需注意)
Calendar c = Calendar.getInstance();
c.setTime(Date date);
时间格式化示例代码如下:
Calendar c1=Calendar.getInstance(); c1.setTime(new Date()); //Calendar c2 = Calendar.getInstance(); ////当Calendar中设置的时间超过每项的最大值时,会以减去最大值后的值设置时间,例如月份设置13,最后会变成13-11=02 //c2.set(1920, 13, 24, 22, 32, 22); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat format2 = new SimpleDateFormat("yy-MM-dd H:m:s"); SimpleDateFormat format3 = new SimpleDateFormat("y-M-d H:m:s"); System.out.println(format.format(c1.getTime())); System.out.println(format2.format(c1.getTime())); System.out.println(format3.format(c1.getTime()));
输出结果如下:
2016-02-04 14:19:54
16-02-04 14:19:54
2016-2-4 14:19:54
相关文章推荐
- Java经典用法总结
- Eclipse下导入外部jar包的2种方式
- Java实现Internet地址获取
- 如何实现XA式、非XA式Spring分布式事务
- kafka java简单例子
- webmagic的设计机制及原理-如何开发一个Java爬虫
- Spring 工具类
- Unicode® Character Name Index
- eclipse maven servlet相关文章
- java基础--多态,内部类,异常,包
- java中static作用详解
- java 获取文件 总行数 比较
- jdk历史版本下载连接
- java zip 压缩与解压
- spring mvc 基于注解demo
- spring框架开发包下载地址
- 手把手教你 cxf3.1.4整合spring4.2
- java国际化——Locale+数字格式
- java中快速创建带初始值的List和Map
- 有关Flash中与Java调用时候注意的一些事项