我有一个TimeStamp'2013-06-24 10:46:11.0'我需要切断.0部分,所以我做的是使用SimpleDateFormat将其解析为String然后再将其解析为date,第一次转换很好,但第二次转换(字符串到目前为止)抛出一个java日期时间。
public void convert(Object object) {
Date date;
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
date = object().getDate();
String formated = format.format(date);
try {
date = format.parse(formated);
} catch (ParseException ex) {
Logger.getLogger(DlgConsultaFactura.class.getName()).log(Level.SEVERE, null, ex);
}
}
我期待的是这样的日期 2013-06-24 10:46:11 ,但我得到的是这个日期 Mon Jun 24 10:46:11 CDT 2013 < /强>
任何帮助将不胜感激。感谢。
答案 0 :(得分:2)
Mon Jun 24 10:46:11 CDT 2013
和2013-06-24 10:46:11
实际上是相同的值。 Mon Jun 24 10:46:11 CDT 2013
符合您的默认语言区域。
你对日期的内部表现形式和显示格式感到困惑。
要在2013-06-24 10:46:11
打印,您可以再次使用相同的SimpleDateFormat
对象。
您可以使用DateFormat#format(Date)
打印日期或以所需格式返回字符串表示,即"yyyy-MM-dd HH:mm:ss"
。像这样:
String myDt = format.format(date);
// 2013-06-24 10:46:11
答案 1 :(得分:0)
如果您只想要日期的字符串表示,那么这不是最好的方法,而是快速简单的方法......
formated = formated.substring(0, formated.length()-2);
:)
答案 2 :(得分:0)
DateFormat,即SimpleDateFormat只根据您的需要格式化日期。
Parse返回传入的String(或您的案例中的时间戳)的Date表示形式。 Format返回传入的Date对象的String表示。
在这两种情况下,您只会看到相同的日期,表示方式也不同。