java - java中如何将不同的日期格式转换为时间戳对象?

标签 java 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,输出中的月份是错误的。这是怎么发生的?

最佳答案

mm 表示分钟 MM 表示月份,因此根据您设置的模式,分钟和月份默认设置为一月。

尝试将模式更改为“dd/MM/yyyy”、“MM/dd/yyyy hh:mm:ss”

关于java - java中如何将不同的日期格式转换为时间戳对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11374781/

相关文章:

java - 如何设计支持部分模型权限的 REST 应用程序?

Java 编写 Multi-VCard 时出现问题

python - 使用 pandas 数据框列中的值更改 DateTime 对象的日期

sql - 如何为 postgresql 中的表的每一行递增每个时间戳?

java - Sunpkcs11 提供商是否与 AWS CloudHSM 兼容?

Java Spring Sleuth Zipkin - X-Span-Export 未显示

python - 如何使用 Tastypie 在 Python (Django) 中基于 DateTimeField 范围过滤对象

使用 DateTimeFormatter 的 java.time.format.DateTimeParseException

mysql - 计算两个日期之间的时间差(以分钟为单位)

sql - 想要在配置单元中将时间戳转换为日期格式