如何在java中将字符串日期转换为Timestamp?

时间:2010-04-30 05:03:41

标签: java

我想在java中将字符串Date转换为Timestamp。我写了以下编码。我已经宣布date1的日期是:7-11-11 12:13:14。

SimpleDateFormat datetimeFormatter1 = new SimpleDateFormat(
                "yyyy-MM-dd hh:mm:ss");
Date lFromDate1 = datetimeFormatter1.parse(date1);
System.out.println("gpsdate :" + lFromDate1);
Timestamp fromTS1 = new Timestamp(lFromDate1.getTime());

我想将7-11-11 12:13:14此字符串日期转换为时间戳。现在我得到的输出是0007-11-11 00:13:14.000000 +05:30:00但我希望(7-11-11 12:13:14)这种格式的时间戳日期。谁能帮帮我吗。谢谢。

6 个答案:

答案 0 :(得分:22)

您需要做的就是将java.text.SimpleDateFormat构造函数中的字符串更改为: “MM-dd-yyyy HH:mm:ss”。

只需使用适当的字母构建上述字符串即可与输入日期匹配。

答案 1 :(得分:12)

TL;博士

java.sql.Timestamp                  
.valueOf(                           // Class-method parses SQL-style formatted date-time strings.
    "2007-11-11 12:13:14"
)                                   // Returns a `Timestamp` object.
.toInstant()                        // Converts from terrible legacy classes to modern *java.time* class.

java.sql.Timestamp.valueOf解析SQL格式

如果您可以使用年份的完整四位数字,则2007-11-11 12:13:14的输入字符串将采用标准SQL格式,前提是此值应为UTC时区。

java.sql.Timestamp类有一个valueOf方法来直接解析这些字符串。

String input = "2007-11-11 12:13:14" ;
java.sql.Timestamp ts = java.sql.Timestamp.valueOf( input ) ;

java.time

在Java 8及更高版本中,java.time框架可以更轻松地验证结果。 j.s.Timestamp类有一个讨厌的习惯,即在通过toString方法生成字符串表示时隐式应用JVM的当前默认时间戳。相反,java.time类默认使用标准ISO 8601格式。

System.out.println( "Output: " + ts.toInstant().toString() );

答案 2 :(得分:3)

使用大写HH获取一天中的小时格式,而不是上午/下午小时

答案 3 :(得分:3)

你甚至可以试试这个。

   String date="09/08/1980";    // take a string  date
    Timestamp ts=null;  //declare timestamp
    Date d=new Date(date); // Intialize date with the string date
    if(d!=null){  // simple null check
        ts=new java.sql.Timestamp(d.getTime()); // convert gettime from date and assign it to your timestamp.
    }

答案 4 :(得分:3)

您可以将字符串转换为时间戳:

String inDate = "01-01-1990"
DateFormat df = new SimpleDateFormat("MM-dd-yyyy");
Timestamp ts = new Timestamp(((java.util.Date)df.parse(inDate)).getTime());

答案 5 :(得分:0)

使用以下代码将字符串日期转换为Epoc时间戳。 注意:-您输入的日期格式应与SimpleDateFormat匹配。

String inputDateInString= "8/15/2017 12:00:00 AM";
SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyy hh:mm:ss");

Date parsedDate = dateFormat.parse("inputDateInString");

Timestamp timestamp = new java.sql.Timestamp(parsedDate.getTime());

System.out.println("Timestamp "+ timestamp.getTime());