Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 字符串到日期,格式未更改_Java_Datetime - Fatal编程技术网

Java 字符串到日期,格式未更改

Java 字符串到日期,格式未更改,java,datetime,Java,Datetime,我已经格式化了字符串形式的日期,我希望它在日期格式,而不改变格式化模式 这是我的密码 Date currDate = new Date();//Fri Oct 31 03:48:24 PDT 2014 String pattern = "yyyy-MM-dd hh:mm:ss"; SimpleDateFormat formatter; formatter = new SimpleDateFormat(pattern); String formattedDate= formatter.format

我已经格式化了字符串形式的日期,我希望它在日期格式,而不改变格式化模式

这是我的密码

Date currDate = new Date();//Fri Oct 31 03:48:24 PDT 2014
String pattern = "yyyy-MM-dd hh:mm:ss";
SimpleDateFormat formatter;
formatter = new SimpleDateFormat(pattern);
String formattedDate= formatter.format(currDate);//2014-10-31 04:23:42
这里我得到了“yyyy-MM-dd hh:MM:ss”格式和我想要的日期格式

SimpleDateFormat sdf = new SimpleDateFormat(pattern);
Date paidDate = sdf.parse(formattedDate);

System.out.println(pattern + " " + paidDate);//Fri Oct 31 03:48:24 PDT 2014

但我得到的结果是2014年10月31日星期五03:48:24,所以请帮助我以日期格式获得2014-10-31 04:23:42的结果,您这样做的时候正在打印日期:

System.out.println(pattern + " " + paidDate);
你需要使用你所说的格式

System.out.println(pattern + " " + formatter.format(paidDate));

您不会得到预期的结果,因为
System.out.println(pattern+“”+paidDate)
调用了
paidDate.toString()
,这意味着这里
java.util.Date#toString()
。如果要格式化日期,请调用
formatter.format(paidDate)

如果要在调用
toString()
时正确格式化日期,必须创建
java.util.date
的子类来覆盖
toString()
方法,以便返回
formatter.format()
的结果。诸如此类:

public class MyDate extends Date {
   public String toString() {
     final SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); 
     return formatter.format(this);
   }
}

日期
是自历元起的毫秒数;要修改默认输出,需要一个<代码> DATEFALT.FALLATION/COD>调用。但是,在我需要的时候返回字符串,在打印时,只使用<代码> SDF。格式化< /代码>。如果您使用java 8,则应该考虑使用<代码> LoalDATECTIMEON/CODE >。FravaTr.FalthATA.()返回字符串,我需要是Date如果是这样,您需要创建java.util.Date的子类来覆盖toString()方法,以便返回formatter.format()的结果返回的值是String我需要它是Date日期已经在paidDate对象中。。。如何打印它与对象完全无关。。。