Подтвердить что ты не робот

Преобразовать строку Date в timestamp в Android?

Я хочу преобразовать свою дату (которая находится в формате String), например. 13-09-2011, по метке. Я использовал ниже код, но я получил 2011-09-13 00: 00: 00.0  в результате. Но я хочу, чтобы формат Timestamp как, 1312828200000.

Я не могу понять, как его преобразовать.

Мой код:

String str_date="13-09-2011";
DateFormat formatter ; 
Date date ; 
formatter = new SimpleDateFormat("dd-MM-yyyy");
date = (Date)formatter.parse(str_date); 
java.sql.Timestamp timeStampDate = new Timestamp(date.getTime());
System.out.println("Today is " +timeStampDate);
4b9b3361

Ответ 1

Если вы используете getTime() объекта Date, вы получите время в миллисекундах. Не нужно использовать Timestamp, чтобы получить результат.

String str_date="13-09-2011";
DateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
Date date = (Date)formatter.parse(str_date); 
System.out.println("Today is " +date.getTime());

Приведенный выше код напечатает что-то вроде 1312828200000, которое вам нужно, и это длинное значение.

Ответ 2

String str_date=month+"-"+day+"-"+yr;
DateFormat formatter = new SimpleDateFormat("MM-dd-yyyy");
Date date = (Date)formatter.parse(str_date); 
long output=date.getTime()/1000L;
String str=Long.toString(output);
long timestamp = Long.parseLong(str) * 1000;

Ответ 3

Эта строка:

"Today is " +timeStampDate

вызывает TimeStamp.toString() метод ", который форматирует временную метку в формате выхода временной метки JDBC. yyyy-mm-dd hh:mm:ss.fffffffff, где ffffffffff обозначает наносекунды."

TimeStamp, который вы получили внутри, имеет нужное значение. Если вы хотите получить его, чем использовать: System.out.println("Today is " + timeStampDate.getTime());

    String str_date="13-09-2011";
    DateFormat formatter ; 
    Date date ; 
    formatter = new SimpleDateFormat("dd-MM-yyyy");
    date = (Date)formatter.parse(str_date);
    java.sql.Timestamp timeStampDate = new Timestamp(date.getTime());
    System.out.println("Today is " + timeStampDate.getTime());

Или, если вам не нужен Timestamp, вы можете напрямую использовать date.getTime(). Это "Returns the Date as a millisecond value.":

    String str_date="13-09-2011";
    DateFormat formatter ; 
    Date date ; 
    formatter = new SimpleDateFormat("dd-MM-yyyy");
    date = (Date)formatter.parse(str_date);
    System.out.println("Today is " + date.getTime());