java日期转换

来源:互联网 发布:cdnn软件 编辑:程序博客网 时间:2024/05/20 17:39

日期转换用到了SimpleDateFormat类,其中有两个方法format()和parse(),下面讲一下用法及可能出现的问题。

parse方法:将字符串类型(java.lang.String)解析为日期类型(java.util.Date)
format方法:将日期类型(Date)数据格式化为字符串(String)

1.先说parse(),parse()是将字符串类型的解析为日期类型的

public static void main(String[] args) {          String str = "2013-01-21 15:10:20";          Date date = null;          SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss");          try {              date = sdf.parse(str);          } catch (ParseException e) {              System.out.println(e.getMessage());          }          System.out.println(date);          System.out.println(date.getTime());      }  
2.format(),这个方法是将日期类型的数据格式化为字符串

public static void main(String[] args){ SimpleDateFormat dateformat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss "); String a=dateformat.format(new Date()); System.out.println("时间:"+a); }
3.SimpleDateFormat是线程不安全的,为了安全,可以对操作进行加锁。

public static void main(String[] args) throws Exception {String str = "2013-01-21 15:10:20";          System.out.println(parseString(str));}    public static SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");    private static final Object LOCK = new Object();    public static Date parseString(String datetime) throws Exception {        synchronized (LOCK) {            return format.parse(datetime);        }    }
4.有的时候会报这种错误
Exception in thread "main" java.text.ParseException: Unparseable date: "2013-01-21 15:10:20"at java.text.DateFormat.parse(DateFormat.java:357)at com.date.DateTest.parseString(DateTest.java:20)at com.date.DateTest.main(DateTest.java:12)
这里要注意一下,使用parse方法将String转为Date时,SimpleDateFormat定义的格式与参数String的格式必须完全一致,不然就会出现Unparseable date。