标签:
杂谈 |
分类: 计算机相关 |
日期的格式化器普用的是SimpleDateFormat,它继承了了DateFormat。SimpleDateFormat为用户提供了更多的控制功能,更灵活。
但是有两点需要注意:使用SimpleDateFormat解析字符串日期的时候要放入一个try代码块,以防遇到特殊的日期格式抛出异常;获取SimpleDateFormat实例的时候最好使用DateFormat的getTimeInstance、getDateInstance 或getDateTimeInstance类方法来获取。因为new一个SimpleDateFormat不适用于所有的地区,在国际化的时候会遇到问题,当然这个问题很难遇到了,但是还是小心为好。
总结一下SimpleDateFormat的用法其实很简单:建立格式器(SimpleDateFormat)DateFormat.getDateInstance()--->添加格式applyPattern(pattern)--->格式化、解析日期format(Date)、parse(String)。
package com.date_test;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateFormat_test {
public static void main (String agrs[]) {
Date dNow = new Date();
//建立日期格式化器,这里是获取的默认语言环境、默认格式的格式器
SimpleDateFormat df = (SimpleDateFormat)DateFormat.getDateInstance();
df.applyPattern("yyyy-MM-dd HH:mm:ss");
System.out.println("最普遍的格式: " df.format(dNow));
df.applyPattern("yy-MM-dd HH:mm:ss");
System.out.println("年份俭省格式: "
df.format(dNow));
//省略年份和具体时间格式 df.applyPattern("MM-dd");
//采用12小时制格式
df.applyPattern("yyyy-MM-dd hh:mm:ss");
System.out.println("采用12小时制格式: "
df.format(dNow));
//省去个位数时前面的0格式
df.applyPattern("yyyy-m-dd h:mm:ss");
System.out.println("省去个位数时前面的0格式: "
df.format(dNow));
//更为自由的格式,嵌入字符、换行等,字符要用''包含
df.applyPattern("yyyy'年'M'月'd'日'\nh'时'm'分'mm'秒'");
System.out.println("更为自由的格式,嵌入字符、换行等:\n" df.format(dNow)
"\n\n\n");
String dTest = "2012-09-10";
//这里的异常处理是必须、必要的,防止出现特殊格式的字符串日期
try {
df.applyPattern("yyyy-MM-dd");
Date ddTest = df.parse(dTest);
//这里输出的日期仍然是默认格式,而非之前设定的格式
System.out.println(ddTest);
} catch (ParseException e) {
// TODO Auto-generated catch block
} } }
package com.date_test;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateFormat_test {
public static void main (String agrs[])
{
//获取当前时间
Date dNow = new Date();
//建立日期格式化器,这里是获取的默认语言环境、默认格式的格式器
SimpleDateFormat df = (SimpleDateFormat)DateFormat.getDateInstance();
//最普遍的格式
df.applyPattern("yyyy-MM-dd HH:mm:ss");
System.out.println("最普遍的格式: " df.format(dNow));
//年份俭省格式
df.applyPattern("yy-MM-dd HH:mm:ss");
System.out.println("年份俭省格式: " df.format(dNow));
//省略年份和具体时间格式
df.applyPattern("MM-dd");
System.out.println("省略年份和具体时间格式: " df.format(dNow));
//采用12小时制格式
df.applyPattern("yyyy-MM-dd hh:mm:ss");
System.out.println("采用12小时制格式: " df.format(dNow));
//省去个位数时前面的0格式
df.applyPattern("yyyy-m-dd h:mm:ss");
System.out.println("省去个位数时前面的0格式: " df.format(dNow));
//更为自由的格式,嵌入字符、换行等,字符要用''包含
df.applyPattern("yyyy'年'M'月'd'日'\nh'时'm'分'mm'秒'");
System.out.println("更为自由的格式,嵌入字符、换行等:\n"
df.format(dNow) "\n\n\n");
String dTest = "2012-09-10";
//这里的异常处理是必须、必要的,防止出现特殊格式的字符串日期
try
{
df.applyPattern("yyyy-MM-dd");
Date ddTest = df.parse(dTest);
//这里输出的日期仍然是默认格式,而非之前设定的格式
System.out.println(ddTest);
}
catch (ParseException e)
{
// TODO Auto-generated catch block
e.printStackTrace();}}
}
上述程序运行结果如下:
运行结果