我想在Java6中将字符串转换为日期格式

我想在Java6中将字符串转换为日期格式,java,datetime-format,Java,Datetime Format,我的输入如下: 20180718140032488266000Z-0600 它在数据库中的持久化方式如下: 21-JUL-18 12.05.25.000000000 AM 目前,我编写了如下代码: public static void main(String[] argv) throws ParseException { // SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmssSSSZ")

我的输入如下:

20180718140032488266000Z-0600
它在数据库中的持久化方式如下:

21-JUL-18 12.05.25.000000000 AM
目前,我编写了如下代码:

    public static void main(String[] argv) throws ParseException {
        // SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmssSSSZ");
        String dateInString = "20180718140032488266000Z-0600";
        Timestamp ts = formatDate(dateInString);
        System.out.println(ts);
    }

    private static Timestamp formatDate(String dateString) throws ParseException {
        // dateString = dateString.replaceAll("Z", "0000");
        SimpleDateFormat fmtTimestamp = new SimpleDateFormat("yyyyMMddHHmmssSSS'Z'");
        Date dtTimestamp1 = fmtTimestamp.parse(dateString);
        Timestamp timestamp = new java.sql.Timestamp(dtTimestamp1.getTime());
        return timestamp;
    }
我得到的是以下格式的输出:
2018-07-24 05:38:18.0
,我的问题是如何在输出中也得到am/PM。请提出解决方案。我会非常感激的

我的问题是如何在输出中也获得AM/PM

Java 6非常古老。但是,您需要检查文档说明,您将看到字母
a
是针对am/pm Maker的:

a   Am/pm marker    Text    PM
您的格式是
2018年7月21日12.05.25.000000000 AM
,因此在添加此格式的最后,您需要创建一个新的SimpleDataFormat

public static void main(String args[]) throws IOException, ParseException {
        String dateInString = "20180718140032488266000Z-0600";
        Timestamp ts = formatDate(dateInString);
        System.out.println(ts);
        SimpleDateFormat fmtTimestamp = new SimpleDateFormat("dd-MMM-YY hh.mm.s.SSSSS a");
        System.out.println(fmtTimestamp.format(ts));
    }

用这个你会得到这个。。。但有更好的解决办法。比如升级到Java的新版本。我的拙见。

以下代码将以“2018-07-31 7:39:09 PM”格式为您提供日期。请参考其他信息

import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleDateFormatExample {
public static void main(String[] args) {
    Date date = new Date();
    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd h:mm:ss a");
    String strDate= formatter.format(date);
    System.out.println(strDate);
}

}

有大量的副本。使用java.util.date可能需要在数据库中保留我的输出的副本,其中字段为时间戳数据类型,当前显示的值如下所示:21-JUL-18 12.05.25.000000000 Am然后使用适当的库执行带有参数化查询的SQL UPDATE命令。正确的方法是在
TIMESTAMP
列(或某些数据库中的
DATETIME
)。这种类型的列没有格式,如果使用预处理语句,则可以直接设置它,而不需要格式化字符串。您似乎对JDBCAPI感到困惑,只需查看
java.sql.Timestamp
的默认
toString()