2016-12-29 75 views
-3

我试图将日期以dd-MM-yyyy格式从YYYY-MM-dd转换成hh:mm:ss.ms in java使用下面的代码,但中号无法获得期望的值在java中将日期dd/MM/yyyy转换为dd-MM-yyyy

String dob = (new SimpleDateFormat("dd-MM-yyyy")).format(customerEntity.getDob().toString()); 

customerEntity.getDob()的toString是我提供这个价值1987年6月12日00:00:00.0

但是当我解析它到字符串dob它产生163-06-1987作为输出,而我想输出像12-06-1987。

任何帮助将是明显的,由于提前做好

+0

为什么你使用的toString()?你必须格式化一个日期,而不是一个字符串 –

+0

即使删除了toString()方法后,我仍然没有在接近所需输出的地方尝试'customerEntity.getDob()','sDF.format(dateObj)' – Kent

+0

@lgino – Mavericks

回答

0

尝试解析你的字符串日期为Date第一格式它是未来。将该Date对象传递给您希望输出的格式的格式。

如下文:在SimpleDateFormat

Date dob = (new SimpleDateFormat("yyyy-MM-dd")).parse("1987-06-12 00:00:00.0"); 
    String dob1 = (new SimpleDateFormat("dd-MM-yyyy")).format(dob); 
+0

潘卡它的正常工作为静态字符串,但你能告诉我如何解析像在代码中提到,我是通过对象解析bearth日期,customer.getDOB()的对象的值; 。 – Mavericks

+0

正如你所说,customerEntity.getDob()的toString是我提供这个价值1987年6月12日00:00:00.0。 – PankajT

+0

PankajT它只是因为我使用toString()方法在字符串中强制ObjectValue,但现在为了转换此字符串中的DOB所有我正在做的是 – Mavericks

0

format方法采取Date作为参数,而不是一个String

public static void main(String[] args) { 
String dateStr = "29/12/2016"; 
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); 
try { 
    Date date = sdf.parse(dateStr); 
    sdf = new SimpleDateFormat("dd-MM-yyyy"); 
    System.out.println(sdf.format(date)); 
} catch (ParseException e) { 
    e.printStackTrace(); 
} 
} 
相关问题