【发布时间】:2012-02-03 10:37:03
【问题描述】:
我正在使用以下代码以“dd/MM/yyyy HH:mm:ss.SS”格式获取日期。
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateAndTime{
public static void main(String[] args)throws Exception{
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss.SS");
String strDate = sdf.format(cal.getTime());
System.out.println("Current date in String Format: "+strDate);
SimpleDateFormat sdf1 = new SimpleDateFormat();
sdf1.applyPattern("dd/MM/yyyy HH:mm:ss.SS");
Date date = sdf1.parse(strDate);
System.out.println("Current date in Date Format: "+date);
}
}
并且得到以下输出
Current date in String Format: 05/01/2012 21:10:17.287
Current date in Date Format: Thu Jan 05 21:10:17 IST 2012
请建议我应该如何以相同的字符串格式显示日期(dd/MM/yyyy HH:mm:ss.SS),即我想要以下输出:
Current date in String Format: 05/01/2012 21:10:17.287
Current date in Date Format: 05/01/2012 21:10:17.287
请推荐
【问题讨论】:
-
当你 System.out.println 一个日期对象时,会调用 Date 的 toString 方法。您需要创建自己的 Date 子类并覆盖 toString 方法以按照您希望的方式输出 Date。
-
确实不清楚你想要什么,但请理解这一点:
Date.toString()返回默认格式,对此无能为力。您必须使用SimpleDateFormat来格式化字符串输出。 -
你的意思是
.SSS毫秒吗? Java 不支持 1/100 秒。如果您使用.SS,它的许多行为都不会像您预期的那样。 -
仅供参考,非常麻烦的旧日期时间类,例如
java.util.Date、java.util.Calendar和java.text.SimpleDateFormat,现在是 legacy,被 Java 8 中内置的 java.time 类所取代,之后。见Tutorial by Oracle。
标签: java