如何将不同的日期格式转换为java中的timestamp对象?

时间:2012-07-07 11:55:32

标签: java datetime timestamp

我有以下代码将date / datetime的不同字符串表示转换为timestamp对象:

public class GeneralMethods {

    public static String[] formats = {"dd/mm/yyyy","mm/dd/yyyy hh:mm:ss","E MMM dd HH:mm:ss zzz yyyy"};

/**
 * a method to return timestamp object from string date in the formats 
 * {"dd/mm/yyyy HH:mm:ss","E MMM dd HH:mm:ss zzz yyyy","dd/mm/yyyy"} 
 * @param date: the date to format in string representation
 * @return timestamp object
 */
public static Timestamp timestampFormat(String date)
{
    Date dateObj = new Date(); 
    for(String format: formats)
    {
         try 
         {
             dateObj =  new SimpleDateFormat(format).parse(date);
                        System.out.println(dateObj.toString()); // for tracking

         }catch (ParseException e) 
         {

         }  
    }
    return new Timestamp(dateObj.getTime());

}

   // testing
   public static void main (String args[])
  {
    System.out.println(timestampFormat("05/31/2011 21:37:35"));
  }

}

此代码的输出为:

Wed Jan 05 00:31:00 GMT 2011
Mon Jan 31 21:37:35 GMT 2011
2011-01-31 21:37:35.0

正如您可以看到输入中的月份输入错误05/31/2011 21:37:35。这是怎么回事?

1 个答案:

答案 0 :(得分:2)

mm只需几分钟MM,因此根据您的模式设置分钟和月份默认设置为1月。

尝试将模式更改为"dd/MM/yyyy", "MM/dd/yyyy hh:mm:ss"

相关问题