2015-10-13 109 views
0

我有时间格式 2015-08-14T06:00:00+08:00 的字符串,我想将其转换为TIMESTAMP但:转换时间字符串转换为时间标记的Java

public static Long convertTimeStringToTimeStampMilSec(String timeStr){ 
     SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-ddTHH:MM:SS+08:00"); 
     try { 
      Date d = dateFormat.parse(timeStr); 
      Calendar c = Calendar.getInstance(); 
      c.setTime(d); 
      return c.getTimeInMillis(); 
     }catch (Exception e){ 
      e.printStackTrace(); 
      return null; 
     } 
} 

并获得例外:

Exception in thread "main" java.lang.IllegalArgumentException: Illegal pattern character 'T' 
    at java.text.SimpleDateFormat.compile(SimpleDateFormat.java:845) 
    at java.text.SimpleDateFormat.initialize(SimpleDateFormat.java:659) 
    at java.text.SimpleDateFormat.<init>(SimpleDateFormat.java:585) 
    at java.text.SimpleDateFormat.<init>(SimpleDateFormat.java:560) 

如何处理这个?

+4

http://stackoverflow.com/a/2597111/3166303 – leeor

回答

3

异常在线程 “主” java.lang.IllegalArgumentException异常:非法 图案字符 'T'

它应该是

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss+08:00"); 
格式

引用的序列,例如一个'T' ,这被视为文字。