将String []转换为时间戳

时间:2014-06-09 11:48:11

标签: java

如何将string [] temp转换为Timestamp:

    String[] temp = line.split(",");
            for (int i = 1; i < temp.length; i++) {

                    objekt.setTimestamp(timestamp);}

如果我使用

Timestamp ts= Timestamp.valueOf(temp[0]);
objekt.setTimestamp(ts);}

我收到此异常Timestamp format must be yyyy-mm-dd hh:mm:ss[.fffffffff]

如果我使用这个

SimpleDateFormat dateFormat = new SimpleDateFormat("MM-dd-yyyy hh:mm:ss");
                java.util.Date parsedDate = dateFormat.parse(temp[0]);
                java.sql.Timestamp timestamp = new java.sql.Timestamp(parsedDate.getTime());
我明白了 &#34; java.text.ParseException:Unparseable date:&#34; 06/11/2013 22:00&#34;

谢谢大家的建议,我可以阅读时间戳,但我必须阅读这个格式的月 - 日 - 年:06/18/2013 21:00:00,并使用SimpleDateFormat dateFormat = new SimpleDateFormat(&#34; MM / dd / yyyy HH:mm&#34;);我得到2013-06-18 18:00:00,如果我改变MM或dd或yyyy hier&#34; MM / dd / yyyy HH:mm&#34;我甚至无法获得月份,然后是日期和年份

4 个答案:

答案 0 :(得分:3)

您的日期格式必须与提供的文字实际匹配。 '/''-'不匹配。

对于您提供的字符串,格式可能为"MM/dd/yyyy HH:mm"

它也可以是"dd/MM/yyyy HH:mm",因为目前尚不清楚该日期是June 11 or November 6

答案 1 :(得分:2)

使用以下代码:

SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm");

假设字符串Unparseable date: "06/11/2013 22:00"中的06与月份相对应

答案 2 :(得分:2)

在您获得java.text.ParseException: Unparseable date: "06/11/2013 22:00的第二个代码块上,由于SimpleDateFormatString,您的"06/11/2013 22:00"模式错误,因此您必须使用模式:

SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm");

有关详细信息,请参阅java.text.SimpleDateFormat

答案 3 :(得分:1)

您可以这样做:

Timestamp ts= null;
SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy");
String[] temp = {..,..}; // it's string time array
        for (int i = 1; i < temp.length; i++) {            
            Date convertedDate = dateFormat.parse(temp[i]);
            ts = new Timestamp(convertedDate.getTime());
            System.out.println(ts);
         }