This question already has answers here:
Illegal pattern character 'T' when parsing a date string to java.util.Date
                                
                                    (3个答案)
                                
                        
                4年前关闭。
            
        

我有一个时间格式的字符串
2015-08-14T06:00:00+08:00
我想将其转换为timeStamp,但是:

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)


该如何处理?

最佳答案

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


它应该是

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


用格式表示的引号序列,例如'T',被视为文字。

10-08 06:47
查看更多