Как преобразовать строку date в Timestamp в java?
Я хочу преобразовать строку 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) этот формат Дата отметки времени. Кто-нибудь может мне помочь, пожалуйста. Спасибо.
Ответы
Ответ 1
Все, что вам нужно сделать, это изменить строку в конструкторе java.text.SimpleDateFormat
на: "MM-дд-гггг ЧЧ: мм: сс".
Просто используйте соответствующие буквы, чтобы построить вышеупомянутую строку, чтобы соответствовать вашей вводимой дате.
Ответ 2
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 упрощает проверку результатов. Класс jsTimestamp имеет неприятную привычку неявно применять текущую временную метку JVM по умолчанию при генерации строкового представления с помощью метода toString
. Напротив, классы java.time по умолчанию используют стандартные форматы ISO 8601.
System.out.println( "Output: " + ts.toInstant().toString() );
Ответ 3
Используйте капитал HH
, чтобы получить формат часа дня, вместо часов am/pm
Ответ 4
Вы даже можете попробовать это.
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.
}
Ответ 5
Вы можете преобразовать String в метку времени:
String inDate = "01-01-1990"
DateFormat df = new SimpleDateFormat("MM-dd-yyyy");
Timestamp ts = new Timestamp(((java.util.Date)df.parse(inDate)).getTime());
Ответ 6
Используйте приведенный ниже код для преобразования 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());