一般打发无聊的时间候你们是怎么打发时间呢?

Java中的时间日期处理 - Mr.Johness - 博客园
阿何的程序人生
  程序就是输入&&&处理&&&输出。对数据的处理是程序员需要着重注意的地方,快速、高效的对数据进行处理时我们的追求。其中,时间日期的处理又尤为重要和平凡,此次,我将把Java中的时间日期处理方式进行简单的解析,为自己以后的学习做一个备忘,也为初学者做一个借鉴。
  时间,英文Time;日期,英文Date;日历,英文Calendar。Java中注重语义化,也是用以上的名称对时间日期函数和相关类进行命名。
  我们将以Java自带的时间日期类和其中的处理函数进行分析。
一、与时间日期有关的类。
  java.util.Date。实现类,其对象具有时间、日期组件。
  java.util.Calendar。抽象类,其对象具有时间、日期组件。
  java.sql.Date。实现类,其对象具有日期组件。
  java.sql.Time。实现类,其对象具有时间组件。
  java.sql.Timestamp。实现类,其对象具有时间日期组件。
  java.text.DateFormat。抽象类,其对象格式化时间日期。
  java.text.DateFormatSymbols。实现类,其对象为格式化时间日期提供参数。
  (sun.util.*canlender*.*。System。Local。TimeZone等)
  由于jdk的安装并没有给出全部源码,推荐大家获取jdk全部源码: 。
二、类之间的关系。
  我们通过图解和部分jdk源代码来说明。 
  (上图有几处错误,Calendar拼写错误。)
  以上的图列出了部分常用的类。我们一般会使用的类java.util.Date、java.util.Calendar、java.sql.Timestamp、java.text.DateFormat进行时间日期操作,因为他们有完全的时间日期组件和全面的格式化功能。
  值得注意的是:java.sql.Date没有时间组件!而java.sql.Time没有日期组件!再次提醒。什么意思呢?大家请看下面的代码:
1 public static void main(String[] args) {
* 以下代码用于向大家展示各个时间日期类对象的包含组件。
java.sql.Date sqlDate = new java.sql.Date(System.currentTimeMillis());
System.out.println(sqlDate.toString()); // 输出结果:
java.sql.Time sqlTime = new java.sql.Time(System.currentTimeMillis());
System.out.println(sqlTime.toString()); // 输出结果:12:35:11
java.sql.Timestamp sqlTimestamp = new java.sql.Timestamp(System.currentTimeMillis());
System.out.println(sqlTimestamp.toString()); // 输出结果: 12:36:33.544
java.util.Date utilDate = new java.util.Date(System.currentTimeMillis());
System.out.println(utilDate.toString()); // 输出结果:Sat Sep 01 12:37:34 CST 2012
java.util.Calendar cl = java.util.Calendar.getInstance();
System.out.println(cl.getTime().toString()); // 输出结果:Sat Sep 01 12:39:51 CST 2012
  可以看到:java.util.Date、java.util.Calendar、java.sql.Timestamp具有的时间日期组件(而且他们具有无参构造方法),java.sql.Date和java.sql.Time只有时间或日期组件。
  为了证实以上言论,我将部分jdk源码贴出来供大家参考。
  java.sql.Date源代码:
1 package java.
4 public class Date extends java.util.Date {
// 省略部分代码&&
// Override all the time operations inherited from java.util.D
* This method is deprecated and should not be used because SQL Date
* values do not have a time component.
* @deprecated
* @exception java.lang.IllegalArgumentException if this method is invoked
* @see #setHours
public int getHours() {
throw new java.lang.IllegalArgumentException();
* This method is deprecated and should not be used because SQL Date
* values do not have a time component.
* @deprecated
* @exception java.lang.IllegalArgumentException if this method is invoked
* @see #setMinutes
public int getMinutes() {
throw new java.lang.IllegalArgumentException();
* This method is deprecated and should not be used because SQL Date
* values do not have a time component.
* @deprecated
* @exception java.lang.IllegalArgumentException if this method is invoked
* @see #setSeconds
public int getSeconds() {
throw new java.lang.IllegalArgumentException();
* This method is deprecated and should not be used because SQL Date
* values do not have a time component.
* @deprecated
* @exception java.lang.IllegalArgumentException if this method is invoked
* @see #getHours
public void setHours(int i) {
throw new java.lang.IllegalArgumentException();
* This method is deprecated and should not be used because SQL Date
* values do not have a time component.
* @deprecated
* @exception java.lang.IllegalArgumentException if this method is invoked
* @see #getMinutes
public void setMinutes(int i) {
throw new java.lang.IllegalArgumentException();
* This method is deprecated and should not be used because SQL Date
* values do not have a time component.
* @deprecated
* @exception java.lang.IllegalArgumentException if this method is invoked
* @see #getSeconds
public void setSeconds(int i) {
throw new java.lang.IllegalArgumentException();
* Private serial version unique ID to ensure serialization
* compatibility.
static final long serialVersionUID = 7230103L;
  java.sql.Time源代码:
// 省略部分源代码&&
* This method is deprecated and should not be used because SQL &code&TIME&/code&
* values do not have a year component.
* @deprecated
* @exception java.lang.IllegalArgumentException if this
method is invoked
* @see #setYear
@Deprecated
public int getYear() {
throw new java.lang.IllegalArgumentException();
* This method is deprecated and should not be used because SQL &code&TIME&/code&
* values do not have a month component.
* @deprecated
* @exception java.lang.IllegalArgumentException if this
method is invoked
* @see #setMonth
@Deprecated
public int getMonth() {
throw new java.lang.IllegalArgumentException();
* This method is deprecated and should not be used because SQL &code&TIME&/code&
* values do not have a day component.
* @deprecated
* @exception java.lang.IllegalArgumentException if this
method is invoked
@Deprecated
public int getDay() {
throw new java.lang.IllegalArgumentException();
* This method is deprecated and should not be used because SQL &code&TIME&/code&
* values do not have a date component.
* @deprecated
* @exception java.lang.IllegalArgumentException if this
method is invoked
* @see #setDate
@Deprecated
public int getDate() {
throw new java.lang.IllegalArgumentException();
* This method is deprecated and should not be used because SQL &code&TIME&/code&
* values do not have a year component.
* @deprecated
* @exception java.lang.IllegalArgumentException if this
method is invoked
* @see #getYear
@Deprecated
public void setYear(int i) {
throw new java.lang.IllegalArgumentException();
* This method is deprecated and should not be used because SQL &code&TIME&/code&
* values do not have a month component.
* @deprecated
* @exception java.lang.IllegalArgumentException if this
method is invoked
* @see #getMonth
@Deprecated
public void setMonth(int i) {
throw new java.lang.IllegalArgumentException();
* This method is deprecated and should not be used because SQL &code&TIME&/code&
* values do not have a date component.
* @deprecated
* @exception java.lang.IllegalArgumentException if this
method is invoked
* @see #getDate
@Deprecated
public void setDate(int i) {
throw new java.lang.IllegalArgumentException();
* Private serial version unique ID to ensure serialization
* compatibility.
static final long serialVersionUID = 8013681L;
  从上面的代码可以看出:java.sql.Date和java.sql.Time确实是不具有完整组件的!
  我们再次利用代码来说明:
1 public static void main(String[] args) {
* 以下代码用于向大家展示各个时间日期类对象的包含组件。
java.sql.Date sqlDate = new java.sql.Date(System.currentTimeMillis());
System.out.println(sqlDate.toString()); // 输出结果:
java.sql.Time sqlTime = new java.sql.Time(System.currentTimeMillis());
System.out.println(sqlTime.toString()); // 输出结果:12:35:11
java.sql.Timestamp sqlTimestamp = new java.sql.Timestamp(System.currentTimeMillis());
System.out.println(sqlTimestamp.toString()); // 输出结果: 12:36:33.544
java.util.Date utilDate = new java.util.Date(System.currentTimeMillis());
System.out.println(utilDate.toString()); // 输出结果:Sat Sep 01 12:37:34 CST 2012
java.util.Calendar cl = java.util.Calendar.getInstance();
System.out.println(cl.getTime().toString()); // 输出结果:Sat Sep 01 12:39:51 CST 2012
* 以下代码用于试验java.sql.Date和java.sql.Time是否具有完整组件。
System.out.println();
System.out.println(sqlDate.getHours());
} catch (Exception e) {
System.out.println(e.getMessage()); // 输出 null
System.out.println(sqlTime.getDate());
} catch (Exception e) {
System.out.println(e.getMessage()); // 输出 null
  实验成功,所有给大家一个忠告:在进行数据库时间日期操作时,使用java.sql.Timestamp类。
  那么很简单,如果您需要在程序中进行完整的时间日期操作,推荐您使用java.util.Date+java.text.DateFormat。
  如果您需要进行复杂或深入的操作,您可以选择java.util.Calendar。有人说Calendar是Date的复杂版本,我觉得说得有一些道理。我们可以通过他们的依赖对象(通过源码文件中引入的外部类)来证实这个说法:
  java.util.Date:
1 package java.
3 import java.text.DateF
4 import java.io.IOE
5 import java.io.ObjectOutputS
6 import java.io.ObjectInputS
7 import java.lang.ref.SoftR
8 import sun.util.calendar.BaseC
9 import sun.util.calendar.CalendarD
10 import sun.util.calendar.CalendarS
11 import sun.util.calendar.CalendarU
12 import sun.util.calendar.E
13 import sun.util.calendar.G
14 import sun.util.calendar.ZoneI
  java.util.Calendar:
1 package java.
3 import java.io.IOE
4 import java.io.ObjectInputS
5 import java.io.ObjectOutputS
6 import java.io.OptionalDataE
7 import java.io.S
8 import java.security.AccessControlC
9 import java.security.AccessC
10 import java.security.PermissionC
11 import java.security.PrivilegedActionE
12 import java.security.PrivilegedExceptionA
13 import java.security.ProtectionD
14 import java.text.DateF
15 import java.text.DateFormatS
16 import java.util.concurrent.ConcurrentHashM
17 import java.util.concurrent.ConcurrentM
18 import sun.util.BuddhistC
19 import sun.util.calendar.ZoneI
20 import sun.util.resources.LocaleD
  java.util.Date更多地用到了sun.util.*calendar*.*。而java.util.Calendar对他们的依赖则很少,并且Calendar中加入了更好的格式化功能等&&(sun.util等源码安装jdk不会提供,我在顶部的下载连接中提供了)。
  其实说这么多都是废话。对大家有用的东西无非只有两点:一是怎样获得时间日期,二是怎样按照自定义格式显示。
  现在我才来讲解以上两点:
    大家可以通过java.util.Date date = new java.util.Date()或者java.util.Date date = java.util.Calendar.getInstance().getTime()获得java.util.Date对象。至少我推荐这样做,和数据库打交道的话就用java.sql.Timestamp。
    (而实际上jdk是不推荐我们使用java.util.Date对象来进行时间日期获取的,我们从java.util.Date类方法注释可以看到,基本所有的方法都有@Deprecated注解,而方法注释大意则是"从JDK1.1开始,我们推荐您使用Calendar的静态成员和对象成员来对时间日期进行操作"。我觉得其中的考虑可能有为了避免歧义吧,毕竟Date的意思是日期)
    大家可以通过java.text.DateFormat或者他的直接实现类java.text.SimpleDateFormat来实现时间日期的格式化。
    下面的代码会给大家展示如何格式化时间日期:
1 public static void main(String[] args) {
* 以下代码用于向大家展示各个时间日期类对象的包含组件。
java.sql.Date sqlDate = new java.sql.Date(System.currentTimeMillis());
System.out.println(sqlDate.toString()); // 输出结果:
java.sql.Time sqlTime = new java.sql.Time(System.currentTimeMillis());
System.out.println(sqlTime.toString()); // 输出结果:12:35:11
java.sql.Timestamp sqlTimestamp = new java.sql.Timestamp(System.currentTimeMillis());
System.out.println(sqlTimestamp.toString()); // 输出结果: 12:36:33.544
java.util.Date utilDate = new java.util.Date(System.currentTimeMillis());
System.out.println(utilDate.toString()); // 输出结果:Sat Sep 01 12:37:34 CST 2012
java.util.Calendar cl = java.util.Calendar.getInstance();
System.out.println(cl.getTime().toString()); // 输出结果:Sat Sep 01 12:39:51 CST 2012
* 以下代码用于试验java.sql.Date和java.sql.Time是否具有完整组件。
System.out.println();
System.out.println(sqlDate.getHours());
} catch (Exception e) {
System.out.println(e.getMessage()); // 输出 null
System.out.println(sqlTime.getDate());
} catch (Exception e) {
System.out.println(e.getMessage()); // 输出 null
* 下面的代码给大家展示时间日期的格式化。
System.out.println();
java.text.DateFormat dateFormat = java.text.SimpleDateFormat.getInstance();
// java.util.Date原本的格式
System.out.println(utilDate.toString()); // 输出:Sat Sep 01 13:16:13 CST 2012
// java.util.Date格式化后的格式
System.out.println(dateFormat.format(sqlDate)); // 输出:12-9-1 下午1:16
System.out.println();
// 很多时候以上的结果并不是我们希望的,我们希望更加自由、更见简单的操作方式
// 此时,java.text.SimpleDateFormat就成了我们的不二选择
// SimpleDateFormat提供了无参和自定义格式参数的构造方法使我们能够轻松地实现自定义格式化
java.text.SimpleDateFormat simpleDateFormat = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss a");
System.out.println(simpleDateFormat.format(sqlDate)); // 输出: 13:20:41 下午
  (我不是为了占篇幅才贴上来重复代码的哦^_^)
  java.text.SimpleDateFormat的format方法使用参数提供了强大的格式化功能(另外,值得一提的是:它的parse方法也提供了强大的字符串转化为Date的功能)。您可以参照以下表格进行选择:
  (上图有一出错误:m和mm中,前者表示当分钟数小于10会只占用一个输出位,即输出0-9而不会输出00-09)
  好了,大家赶紧利用jdk进行时间日期的操作处理吧!
&欢迎您移步我们的交流群,无聊的时候大家一起打发时间:
&或者通过QQ与我联系:
&(最后编辑时间 10:40:56)
评论 - 104不能为空!
给小孩去澳洲自费留学,不知能否陪读,她读书我无聊的时候,可否在外面打工打发时间,虽然家里也有点钱
Either scripts and active content are not permitted to run or Adobe Flash Player version
11.7.0 or greater is not installed.
陪读签证时可以申请的。只是建议放手一些对孩子独立性可能更有帮助!该放手就放手,这样小鹰才能成长哦!
李老师答得很详细了!
澳大利亚要求较为宽松,对于在澳洲的海外留学生而言,家庭成员可以申请陪读签证,以陪同留学生在澳洲完成学业。 一、 申请资格1、正式配偶,男女朋友或未婚夫、妻不被承认。只要婚姻真实,结婚后马上申请亦可,目前还没有听说过拒签记录。另外在澳一方需要1年以上的签证;2、监护人签证的一大特点是,除父母外,留学生的亲属也可申请作为监护人。《澳大利亚移民法》对亲属的定义是:父母、配偶、子女、兄弟、姐妹、姨姑、叔舅、侄甥、祖父母、孙子女;此外,继亲属也可以。但监护人不能小于21岁。二、 所需主要材料1、 留学方学校在读证明。如果已开始正式大学课程,可直接到学校学籍管理部门办理。读语言期间,有些语言学校可以开出;2、一年的医疗保险(家庭)收据;3、 双方的护照复印件公证;4、 存款证明。可以是夫妻的名下或者双方父母名下(如果是父母的要做亲属公证),要求半年以上定期,可至银行办理;5、户口本复印件(每页)和结婚证公证件(6个月内);6、留学方邀请函。留学生家庭成员,是指配偶和事实上的配偶,以及十八周岁以下的未婚的孩子和你准备在未来三个月里和她(或他)成婚的未婚夫(妻)。 一般说来,留学生可以在申请留学签证时,包含着家庭成员。而家庭成员的签证也会随同留学生的签证一并发出。所以家庭成员可以陪同留学生一起来澳洲留学。 但是对于来自中国大陆的中国留学生而言,如果你留学澳洲的课程短于一年,那么你的家庭成员是不允许来澳洲陪读的。所以留学生即使提出申请也难以得到批准。 如果在留学生最初申请签证时并没有没有包含其家庭成员,可以另外申请,这申请是没有什么时间限制的。 留学生的家庭成员在澳洲陪读期间,可以申请工作许可,但是有工作许可的家庭成员,每周工作不得超出二十小时。 对于来自中国大陆的自费留学生,就读的是一个非证书课程,其陪读的家庭成员是不能得到工作许可的。
上海新东方学校
上海新东方学校官方账号
说出您感谢的话:无聊的时候他真的不知道该做些什么来打发时间。的海词问答与网友补充:
相关词典网站:给大家发几个电影吧,无聊的时候可以打发时间_涿鹿吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:54,576贴子:
给大家发几个电影吧,无聊的时候可以打发时间收藏
导演: 陆川编剧: 陆川 / 张牧野主演: 赵又廷 / 姚晨 / 凤小岳 / 李晨 / 唐嫣 / 更多...类型: 动作 / 惊悚 / 冒险制片国家/地区: 中国大陆语言: 汉语普通话上映日期: (中国大陆)片长: 115分钟又名: 陆川版鬼吹灯 / 鬼吹灯之九层妖塔 / 吹灯传说之精绝古城 / 鬼吹灯 / Chronicles of the Ghostly TribeIMDb链接: tt4819498
九层妖塔的剧情简介 · · · · · ·1979年,昆仑山发生神秘生物骸骨,由胡八一(赵又廷 饰)率领的探险队深入昆仑山腹地,寻找有关古生物遗迹的更多秘密,却不料在这个过程中遭到不同神秘生物的轮番攻击,并意外坠入九层妖塔,除胡八一外,一行人生死成谜。 胡八一退伍后回到北京,重逢了发小王凯旋(冯粒 饰),并在神秘人(李晨 饰)与科考队(凤小岳、唐嫣、李光洁 饰)两股力量的夹缝中重新踏上了探寻未知文明的征程,途中与Shirley杨(姚晨 饰)邂逅,熟识的面孔唤醒了他身处探险队那段日子的记忆。此行凶险,在还没来得及搞清楚Shirley的真实身份之际,胡八一、Shirley、王胖子率领一行人便在王子墓、石油小镇等地遭到不明生物的轰炸,这里所发生的一切再度指向九层妖塔,而这次等待他们的,将是一个尘封已千年的未解之谜1080P:magnet:?xt=urn:btih:b718bc9d2
d4a6b57a766edd3728d4K:magnet:?xt=urn:btih:2fbbeafcffcee50f232d4a9aa53af 【图片】
昨天看了,题材不错,就是情节有点乱
曾经的RO伙伴!
我就不一个一个发了,大家想看哪个就说,我给大家找!
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或你无聊的时候是怎么打发时间的?_百度知道
你无聊的时候是怎么打发时间的?
看电视,玩百度知道
其他类似问题
为您推荐:
其他6条回答
每个人的兴趣不一样,我喜欢无聊时开车去人少的地方,放着音乐闭眼什么也不去想!这问题仁者见仁!
玩手机,回答问题
就这么消遣的
丢瓶子咯亲
打发时间的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 打发无聊的时间 的文章

 

随机推荐