Java Data使用DataFormat类简单格式化

Java Data的简单的格式化

在编写程序过程中经常会用到获取当前系统时间的需求,可能用来检测系统性能或者出于其他方面的考虑。
通常情况下我们获取到当前系统时间后需要进行格式化,这个过程是比较讨厌的,但是java有一个类帮我们简单地解决了这个问题。

java.text.DateFormat 类很方便的帮我们处理时间的格式化

DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。日期/时间格式化子类(如 SimpleDateFormat)允许进行格式化(也就是日期 -> 文本)、解析(文本-> 日期)和标准化。将日期表示为 Date 对象,或者表示为从 GMT(格林尼治标准时间)1970 年 1 月 1 日 00:00:00 这一刻开始的毫秒数。

DateFormat 提供了很多类方法,以获得基于默认或给定语言环境和多种格式化风格的默认日期/时间 Formatter。格式化风格包括 FULL、LONG、MEDIUM 和 SHORT。方法描述中提供了使用这些风格的更多细节和示例。

DateFormat 可帮助进行格式化并解析任何语言环境的日期。对于月、星期,甚至日历格式(阴历和阳历),其代码可完全与语言环境的约定无关。

要格式化一个当前语言环境下的日期,可使用某个静态工厂方法:

String myString = DateFormat.getDateInstance().format(myDate);

要格式化不同语言环境的日期,可在 getDateInstance() 的调用中指定它。

DateFormat df = DateFormat.getDateInstance(DateFormat.LONG, Locale.FRANCE);

还可使用 DateFormat 进行解析。

myDate = df.parse(myString);

使用 getDateInstance 来获取该国家/地区的标准日期格式。另外还提供了一些其他静态工厂方法。使用 getTimeInstance 可获取该国家/地区的时间格式。使用 getDateTimeInstance 可获取日期和时间格式。可以将不同选项传入这些工厂方法,以控制结果的长度(从 SHORT 到 MEDIUM 到 LONG 再到 FULL)。确切的结果取决于语言环境,但是通常:

SHORT 完全为数字,如 12.13.52 或 3:30pm
MEDIUM 较长,如 Jan 12, 1952
LONG 更长,如 January 12, 1952 或 3:30:32pm
FULL 是完全指定,如 Tuesday、April 12、1952 AD 或 3:30:42pm PST。
如果愿意,还可以在格式上设置时区。如果想对格式化或解析施加更多的控制(或者给予用户更多的控制),可以尝试将从工厂方法所获取的 DateFormat 强制转换为 SimpleDateFormat。这适用于大多数国家/地区;只是要记住将其放入一个 try 代码块中,以防遇到特殊的格式。

还可以使用借助 ParsePosition 和 FieldPosition 的解析和格式化方法形式来

逐步地解析字符串的各部分。
对齐任意特定的字段,或者找出字符串在屏幕上的选择位置。

代码如下

import java.text.DateFormat;
import java.util.Date;


public class Time {

    public static void main(String args[]){

        Date now = new Date();
        DateFormat dtf = DateFormat.getTimeInstance();
        DateFormat ddf = DateFormat.getDateInstance();
        DateFormat ddtf = DateFormat.getDateTimeInstance();

        System.out.println(now);
        System.out.println(dtf.format(now));    
        System.out.println(ddf.format(now));
        System.out.println(ddtf.format(now));

    }

}

上面的代码可以得到四个不同的结果,已经进行了简单的格式化,可以用于正常的阅读了.

Fri Apr 03 17:11:39 CST 2015
17:11:39
2015-4-3
2015-4-3 17:13:25

如果还需要更加复杂的格式化,DateFormat提供了一些特别的格式化方法,在使用getXXXInstance的时候传入Int类型的常量

代码如下

import java.text.DateFormat;
import java.util.Date;


public class Time {

    public static void main(String args[]){

        Date now = new Date();
        DateFormat dtf = DateFormat.getTimeInstance(1);
        DateFormat ddf = DateFormat.getDateInstance(1);

        System.out.println(dtf.format(now));    
        System.out.println(ddf.format(now));

    }

}

可以看到结果如下
下午05时15分01秒
2015年4月3日

具体传入的类型常量可以根据个人需求传入不同的参数,
例如:
DateFormat.LONG
DateFormat.MEDIUM
DateFormat.DEFAULT
DateFormat.SHORT
DateFormat.FULL

大家可以自己试验一下具体会打印出什么来

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值