2017-09-04 117 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");