Вопрос по java, date – Дата Java не сохраняет миллисекунды в конвертации с простым форматом даты

5

Я пытаюсь преобразовать следующую строку"2012-04-13 04:08:42.794" на тип даты:

    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS");

    Date convertedDate;
    try {
        convertedDate = dateFormat.parse(dateString);
        System.out.println(" in utils: "+convertedDate.toString());
    } catch (ParseException e) {
        e.printStackTrace();
        return null;
    }


  //----------------- i think this is the problem
java.sql.Date sqlDate = new java.sql.Date(convertedDate.getTime());
        System.out.println("sql: "+sqlDate.toString());
        return sqlDate;

Но это печатает следующее:

in utils: Fri Apr 13 04:08:42 PDT 2012

Как я могу получить эту дату, чтобы сохранить миллисекунды?

К вашему сведению, хлопотные старые классы даты и времени, такие какjava.util.Date, java.util.Calendar, а такжеjava.text.SimpleDateFormat есть сейчасlegacyвытесненыjava.time классы, встроенные в Java 8 & amp; Java 9. СмотритеTutorial by Oracle. Basil Bourque

Ваш Ответ

4   ответа
8

Проблема здесь в том, что формат метода toString () не печатает миллисекунды.

Делать

 System.out.println(" in utils: " + dateFormat.format(convertedDate));

Вы также можете проверить, установлены ли MS с

 System.out.println("millis: " + convertedDate.getTime());
Error: User Rate Limit Exceeded Atma
Error: User Rate Limit ExceededDateFormat.parse()Error: User Rate Limit Exceededjava.util.DateError: User Rate Limit Exceededjava.sql.DateError: User Rate Limit Exceededjava.util.Date.toString()Error: User Rate Limit Exceededdocs.oracle.com/javase/6/docs/api/java/text/…
1

 Calendar now = Calendar.getInstance();
 System.out.println("Current milliseconds since Jan 1, 1970 are :"
              + now.getTimeInMillis());

http://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html

1

import java.util.*;
import java.text.*;
public class main {
 public static void main(String[] args)throws Exception {
 long yourmilliseconds = 1119193190;
SimpleDateFormat sdf = new SimpleDateFormat("MMM dd,yyyy HH:mm:ss.SSS");

Date resultdate = new Date(yourmilliseconds);
System.out.println(sdf.format(resultdate));  } 
}  

Выход :

Jan 13,1970 17:53:13.190

С уважением, Эрвальд

1

чтобы печатать с помощью toString (), вы можете создать свой собственный метод печати, чтобы он печатал информацию, которая вам нужна. Также обратите внимание, что большая часть класса Date устарела - посмотрите наhttp://docs.oracle.com/javase/6/docs/api/java/util/Date.html

Похожие вопросы