【问题标题】:How to convert String time stamp to java.sql.Timestamp?如何将字符串时间戳转换为 java.sql.Timestamp?
【发布时间】:2017-04-07 11:14:52
【问题描述】:

我有字符串格式的时间戳为“Thu, 23 Feb 2017 04:56:38 GMT”。那么,如何将此字符串时间戳转换为“2017-02-23 04:56:38.0”格式。 我试过链接java converting date in string format to timestamp。但面临转换错误。 我的示例代码如下。

String str = "Thu, 23 Feb 2017 04:56:38 GMT";


    SimpleDateFormat sdf1 = new SimpleDateFormat("EEE, dd MMM yyyy hh:mm:ss a");
    Date date = null;
    try {
        date = (Date) sdf1.parse(str);
    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    System.out.println("Date Object:" + date);
    SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    System.out.println("Formatted Date:" + sdf2.format(date));

错误:java.text.ParseException:无法解析的日期:“2017 年 2 月 23 日星期四 04:56:38 GMT” 在 java.text.DateFormat.parse(DateFormat.java:366)

【问题讨论】:

  • SimpleDateFormatter > 一个 |上午/下午标记 |正文 | PM ,因此您正在使用 AM/PM 标记来解析 Timezone ...
  • @Fildor,你是对的。在 simpleDateformat 中将 a 更改为 z 后,它工作正常。谢谢
  • 在重复的问题上查看my Answer

标签: java datetime timestamp


【解决方案1】:

只需更改 sdf1 格式

SimpleDateFormat sdf1 = new SimpleDateFormat("EEE, dd MMM yyyy hh:mm:ss z");

这里z的意思是

Date or Time Component  Presentation        Examples
Time zone               General time zone   Pacific Standard Time; PST; GMT-08:00

【讨论】:

    【解决方案2】:

    我知道您现在可以使用它了。无论如何,请允许我提及:您的格式是内置的java.time.format.DateTimeFormatter.RFC_1123_DATE_TIME。所以解析你的字符串是单行的:

        Instant i = OffsetDateTime.parse(str, DateTimeFormatter.RFC_1123_DATE_TIME).toInstant();
    

    既然您要求在标题中使用java.sql.Timestamp,我想您可能需要将它用于您的数据库?现代 JDBC 驱动程序(4.2 版或更高版本)应该能够直接接受Instance。如果你没那么幸运,那还是很容易的:

        Timestamp ts = Timestamp.from(i);
    

    我正在使用java.time 包中的一些类(带有子包java.time.format)。以上只是一个非常简单的示例,说明这些类比旧类TimestampSimpleDateFormat(我认为来自Java 1.0 或1.1)对程序员更友好。我每次使用它们时都会遇到示例(当然,当我在 Stack Overflow 上回答有关使用旧类的棘手错误的问题时)。

    java.time 在 Java 8 中是标准的。如果您想使用 Java 6 或 7 中的类,请在 the ThreeTen Backport 中获取它们。

    【讨论】:

      猜你喜欢
      • 2020-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-03
      • 2013-01-16
      • 1970-01-01
      • 2018-01-27
      相关资源
      最近更新 更多