2017-09-04 119 views
-3

我再次从字符串到日期,但日期从字符串转换日期之后改变我的日期字符串,比前。看到代码日期到字符串,字符串日期错误的Java

import java.text.DateFormat; 
import java.text.ParseException; 
import java.text.SimpleDateFormat; 
import java.util.Date; 

import javax.swing.JOptionPane; 

public class DateChange { 

public static void main(String[] args) { 

    SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/YYYY"); 
    Date date = new Date(); 
    String dateString = dateFormat.format(date); 

    Date currentDate = null; 
    try { 

     currentDate = dateFormat.parse(dateString); 

     System.out.println(date + " \n" + currentDate); 

    } catch (ParseException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

} 

} 

这里不同如果约会对象具有价值周一04九月12点51分33秒IST 2017年

比的currentdate Sun公司1月1日00:00:00北京时间2017年

我知道什么是错的代码,我摸不清它出来了。所以请为我指出。

感谢

+1

什么版本的Java是什么?如果Java 8或更高版本,请考虑使用新的datetime API – fge

+1

仅供参考,您正在使用现在由java.time类取代的麻烦的旧日期时间类。 –

+0

相关:[SimpleDateFormat解析时生成错误的日期时间“YYYY-MM-dd HH:mm”](https://stackoverflow.com/questions/15916958/simpledateformat-producing-wrong-date-time-when-parsing-yyyy -mm-dd-hhmm) –

回答

1

您使用的格式不正确。通过检查the documentation你可以看到,

  • d:天月
  • M:月年
  • Y:本周年
  • y:今年

所以,正确的格式应be:"dd/MM/yyyy"

+0

谢谢。这个愚蠢的错误花了我3个小时。 –

1

您的格式String不正确。您已使用YYYY,但您需要yyyy。像,

SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");