Как преобразовать строковую дату в метку времени в Java? - PullRequest
27 голосов
/ 30 апреля 2010

Я хочу преобразовать строку Date в Timestamp в Java. Следующая кодировка, которую я написал. Я объявляю дату для 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 ]

22 голосов
/ 30 апреля 2010

Все, что вам нужно сделать, это изменить строку в конструкторе java.text.SimpleDateFormat на: "ММ-дд-гггг ЧЧ: мм: сс".

Просто используйте соответствующие буквы, чтобы построить вышеупомянутую строку, чтобы соответствовать вашей вводимой дате.

12 голосов
/ 27 октября 2015

ТЛ; др

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 имеет неприятную привычку неявно применять текущую временную метку по умолчанию вашей JVM при генерации строкового представления с помощью метода toString. Напротив, классы java.time по умолчанию используют стандартные форматы ISO 8601 .

System.out.println( "Output: " + ts.toInstant().toString() );
3 голосов
/ 06 октября 2017

Вы можете преобразовать строку в метку времени:

String inDate = "01-01-1990"
DateFormat df = new SimpleDateFormat("MM-dd-yyyy");
Timestamp ts = new Timestamp(((java.util.Date)df.parse(inDate)).getTime());
3 голосов
/ 28 марта 2014

Вы даже можете попробовать это.

   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.
    }
3 голосов
/ 30 апреля 2010

Используйте заглавные буквы HH, чтобы получить формат часов дня вместо часов утра / часа

0 голосов
/ 08 февраля 2019

Используйте приведенный ниже код для преобразования String Date в Epoc Timestamp.Примечание: - Ваш введенный формат даты должен совпадать с 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());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...