java日期处理(三)

         前一篇笔记讲述的在java中如何创建一个时间日期变量,这里我们将探讨java日期时间对象和字符串之间的相互转化。

         在日常的开发中我们经常会遇到这样的场景,用户输入的时候一个格式化的时间字符串(2009-06-10),程序需要将这个字符串转化为时间日期时间类型的变量,以便进行相关的计算。有时候从存储设备(数据库)中取出的数据是时间日期型对象,我们需要将其转换为一定格式的字符串然后输出给用户。

          首先我们需要分析一下java中如何将时间日期类型的格式化为指定的字符串。代码如下

Code:
  1. String dateString;  //输出的日期时间字符串   
  2. SimpleDateFormat sdf;//只包含日期的格式化对象   
  3. SimpleDateFormat sdfH;//包含时间的格式化对象   
  4. SimpleDateFormat sdfS;//包含毫秒的格式化对象   
  5.   
  6.   
  7. String dateFormat = "yyyy年MM月dd日";   
  8. String dateFormatH = "yyyy年MM月dd日 HH时mm分ss秒";   
  9. String dateFormatS = "yyyy年MM月dd日 HH时mm分ss秒 S毫秒";   
  10.   
  11. //1、创建一个Date类型的变量   
  12. Date currentDate = new Date();   
  13. //2、创建用户格式化的SimpleDateFormat对象   
  14. sdf = new SimpleDateFormat(dateFormat);   
  15. //3、格式化Date对象   
  16. dateString = sdf.format(currentDate);   
  17. //4、输出格式化内容   
  18. System.out.println(dateString);   
  19.          
  20. sdfH = new SimpleDateFormat(dateFormatH);   
  21. dateString = sdfH.format(currentDate);   
  22. System.out.println(dateString);   
  23.   
  24. sdfS = new SimpleDateFormat(dateFormatS);   
  25. dateString = sdfS.format(currentDate);   
  26. System.out.println(dateString);  

上述代码给出了将一个日期时间对象转化成制定格式的字符串的示例,这里需要强调的是,格式化掩码。我们已经最全面的一个为例

Code:
  1. String dateFormatS = "yyyy年MM月dd日 HH时mm分ss秒 S毫秒";  

从这里可以看出 yyyy MM dd HH mm ss S 分别代表不同的组合,比如需要输出结果为 2009/06/01 12:01:03 134 这样的字符串则可以用以下格式的掩码

Code:
  1. String dateFormatS1 = "yyyy/MM/dd HH:mm:ss S";  

这里需要着重强调的是:一定能够要严格区分字母大小写,比如表示月份的和小时的掩码必须用大写

        在分析格式转换之后我们来研究一下如何获取日期时间变量中的某个部分的值,比如我们只想获取当前的年份。代码如下

Code:
  1. Date currentDate ;   
  2. Calendar calendar;   
  3. int year;   
  4. int month;   
  5. int day;   
  6. int hour12;   
  7. int hour24;   
  8. int min;   
  9. int sec;   
  10. int msec;   
  11.   
  12. //创建一个Date对象   
  13. currentDate = new Date();   
  14. //创建一个Calendar对象   
  15. calendar = Calendar.getInstance();   
  16. //将Date对象转化为Calendar对象   
  17. calendar.setTime(currentDate);   
  18.   
  19.   
  20. year = calendar.get(Calendar.YEAR);//年信息   
  21. month = calendar.get(Calendar.MONTH)+1;//月信息   
  22.   
  23. day = calendar.get(Calendar.DAY_OF_MONTH);//日信息   
  24. hour12 = calendar.get(Calendar.HOUR);//12小时信息   
  25. hour24 = calendar.get(Calendar.HOUR_OF_DAY);//24小时信息   
  26. min = calendar.get(Calendar.MINUTE);//分钟信息   
  27. sec = calendar.get(Calendar.SECOND);//秒信息   
  28. msec = calendar.get(Calendar.MILLISECOND);//毫秒信息   
  29.   
  30. System.out.println(year);   
  31. System.out.println(month);   
  32. System.out.println(day);   
  33. System.out.println(hour12+"==="+hour24);   
  34. System.out.println(min);   
  35. System.out.println(sec);   
  36. System.out.println(msec);  

上述代码需要注意的是,获取月份信息时需要+1,这是为什么呢,这个问题感兴趣的可以思考一下,上网查找一下资料。

到此为止,java时间系列的第三个专题就介绍完了,大家可以在此基础上进行一些扩展的应用,比如把日期时间根式化的功能封装成一个通用的方法,这样以后在做项目时直接调用即可,虽然这些方法在google都可以找到,但是笔者还是建议各位朋友特别是初学者还是亲自敲一遍代码,然后仔细的调试运行一下。

 

 如果您对我的文章感兴趣的话,请点击这里加我为好友,让我们一起进步
 
http://student.csdn.net/invite.php?u=106708&c=2383a3846076c876

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值