前一篇笔记讲述的在java中如何创建一个时间日期变量,这里我们将探讨java日期时间对象和字符串之间的相互转化。
在日常的开发中我们经常会遇到这样的场景,用户输入的时候一个格式化的时间字符串(2009-06-10),程序需要将这个字符串转化为时间日期时间类型的变量,以便进行相关的计算。有时候从存储设备(数据库)中取出的数据是时间日期型对象,我们需要将其转换为一定格式的字符串然后输出给用户。
首先我们需要分析一下java中如何将时间日期类型的格式化为指定的字符串。代码如下
- String dateString;
- SimpleDateFormat sdf;
- SimpleDateFormat sdfH;
- SimpleDateFormat sdfS;
-
-
- String dateFormat = "yyyy年MM月dd日";
- String dateFormatH = "yyyy年MM月dd日 HH时mm分ss秒";
- String dateFormatS = "yyyy年MM月dd日 HH时mm分ss秒 S毫秒";
-
-
- Date currentDate = new Date();
-
- sdf = new SimpleDateFormat(dateFormat);
-
- dateString = sdf.format(currentDate);
-
- System.out.println(dateString);
-
- sdfH = new SimpleDateFormat(dateFormatH);
- dateString = sdfH.format(currentDate);
- System.out.println(dateString);
-
- sdfS = new SimpleDateFormat(dateFormatS);
- dateString = sdfS.format(currentDate);
- System.out.println(dateString);
上述代码给出了将一个日期时间对象转化成制定格式的字符串的示例,这里需要强调的是,格式化掩码。我们已经最全面的一个为例
- String dateFormatS = "yyyy年MM月dd日 HH时mm分ss秒 S毫秒";
从这里可以看出 yyyy MM dd HH mm ss S 分别代表不同的组合,比如需要输出结果为 2009/06/01 12:01:03 134 这样的字符串则可以用以下格式的掩码
- String dateFormatS1 = "yyyy/MM/dd HH:mm:ss S";
这里需要着重强调的是:一定能够要严格区分字母大小写,比如表示月份的和小时的掩码必须用大写
在分析格式转换之后我们来研究一下如何获取日期时间变量中的某个部分的值,比如我们只想获取当前的年份。代码如下
- Date currentDate ;
- Calendar calendar;
- int year;
- int month;
- int day;
- int hour12;
- int hour24;
- int min;
- int sec;
- int msec;
-
-
- currentDate = new Date();
-
- calendar = Calendar.getInstance();
-
- calendar.setTime(currentDate);
-
-
- year = calendar.get(Calendar.YEAR);
- month = calendar.get(Calendar.MONTH)+1;
-
- day = calendar.get(Calendar.DAY_OF_MONTH);
- hour12 = calendar.get(Calendar.HOUR);
- hour24 = calendar.get(Calendar.HOUR_OF_DAY);
- min = calendar.get(Calendar.MINUTE);
- sec = calendar.get(Calendar.SECOND);
- msec = calendar.get(Calendar.MILLISECOND);
-
- System.out.println(year);
- System.out.println(month);
- System.out.println(day);
- System.out.println(hour12+"==="+hour24);
- System.out.println(min);
- System.out.println(sec);
- System.out.println(msec);
上述代码需要注意的是,获取月份信息时需要+1,这是为什么呢,这个问题感兴趣的可以思考一下,上网查找一下资料。
到此为止,java时间系列的第三个专题就介绍完了,大家可以在此基础上进行一些扩展的应用,比如把日期时间根式化的功能封装成一个通用的方法,这样以后在做项目时直接调用即可,虽然这些方法在google都可以找到,但是笔者还是建议各位朋友特别是初学者还是亲自敲一遍代码,然后仔细的调试运行一下。
阅读(922) | 评论(0) | 转发(0) |