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

lak*_*hmi 27 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());
Run Code Online (Sandbox Code Playgroud)

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

Gle*_*son 21

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

只需使用适当的字母构建上面的字符串以匹配您的输入日期.


Bas*_*que 12

java.sql.Timestamp可以解析

如果您可以使用年份的完整四位数字,则输入字符串java.sql.Timestamp.valueOf将采用标准SQL格式,假设此值应为UTC时区.

java.sql.Timestamp类有一个2007-11-11 12:13:14直接解析这些字符串的方法.

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.
Run Code Online (Sandbox Code Playgroud)

java.time

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

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


Jen*_*hyn 6

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

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