2012-05-25 3 views
0

Мой код:получить дату с отметкой времени

import java.text.*; 
import java.util.Date; 

public class DateEx { 
    public static void main(String[] args) { 
     //String valueFromDB = "2012/06/06 00:00:00"; 

     String valueFromDB = "2012-12-31 00:00:00.0"; 
     Date d = new Date(valueFromDB); 
     SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy"); 
     String dateWithoutTime = sdf.format(d); 

     System.out.println("sdf.format(d) " + dateWithoutTime); 

    } 
} 

Он работает для "2012/06/06 00:00:00" и мне нужно пройти "2012-12-31 00:00:00.0" он показывает незаконный аргумент. Может быть, потому, что я использую "-" в дате или из-за временной метки времени. Мне нужна дата в формате dd-mm-yyyy.

ответ

1

Попробуйте это -

SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.S"); 
String valueFromDB = "2012-12-31 00:00:00.0"; 
Date d1 = sdf1.parse(valueFromDB); 
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy"); 
String dateWithoutTime = sdf.format(d1); 
System.out.println("sdf.format(d) " + dateWithoutTime); 
+0

thnks juniad для решения, но я хочу понять код, вы можете объяснить. – sweety

+0

Сначала разбор строки по дате. В процессе, давая ему знать, в какой формат вы его входите. Передача объекта даты в форматтер, который форматирует его так, как вы хотите. – JHS

1

Для того, чтобы разобрать строку Date типа, используйте код ниже:

DateFormat formatter; 
Date date; 
formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); 
date = (Date)formatter.parse("2012-12-31 00:00:00"); 
+0

разобрать строку с фракции секунд вы должны добавить .S в формате: 'гггг-мм-дд чч: мм: ss.S' – Herm

+0

Благодаря @ReneJennrich , Да ты прав. –

1

Это может быть полезным.

long dateTimeStamp = 1487269800; 
Timestamp stamp = new Timestamp(dateTimeStamp*1000); 
Date changeDate = new Date(stamp.getTime()); 

Выход:

Date :Fri Feb 17 00:00:00 IST 2017 
+0

ясно объясните, как ваш ответ связан с вопросом. ответ, который вы предоставили, не выглядит достаточно описательным! –

+0

см. Временную метку, полученную из db в long и теперь преобразованную в миллисекунды, и ее созданную в java timestamp, которая используется для получения даты, вызывая конструктор Date .............. , – arajshree

Смежные вопросы