日期是最基本的数据形式之一,因此很多语言或者数据库都提供了对日期的支持,或内置或提供这一类的库。Java也不例外;Java的应用编程接口提供了以跨平台独立语言的方式描述,计算,对比,显示以及便携式分析日期。在这篇文章里,我要讲讲关于swing的自定义控制,允许你在视觉上获取时间信息而不是用敲命令的方式。用这种方法,你可以避免无效的时间信息,让你的使用者以视觉的方式得到享受。
Java描述日期和时间的方法使用传统的Date命令或者Java的一些子库。不管它的名字是什么,日期的类并没有普通意义上的日期的概念(日,月,年等等)技术上讲,它仅仅是从1970年1月1日 00:00:00 GMT开始百万分之一秒的累加的一个结果。尽管这些关于日期的类有各种各样的处理日期的方法,这都是不够的。
为了方便的解决日期问题, JDK 1.1 介绍了一个抽象的类java.util.Calendar。具体的计算日期的子类都会根据日历系统使用一个指向特定日期的指针。这是因为日历系统历来就是有很多种方法来计算自己的日期(比如阳历,罗马历,阴历)。
Java应用编程接口提供了名为java.util.GregorianCalendar的类来根据阳历系统处理日期信息。
最终,名为java.text.DateFormat的类就是一种抽象的处理格式解释日期种类的独立于语言之外的方式。这种方式依靠那些惯例,法则,以及已知的语言要求的位置运行着。名为DateFormat的具体的子类进行实际的工作。例如,名为java.text.SimpleDateFormat的子类允许你根据现有的方式分析或者设定一个日期的格式。
总体来说,这三个最基本的类(Date, Calendar, 以及 DateFormat)提供了强大的灵活的处理日期的体系。也许开始看来会有些疑惑,但你一旦明白了,你就会看到这样的结构是十分有意义的,并且在其背后有很强的逻辑背景。(看看JDK的API文档,你就会得到根多的文档和例子)