如何从getDateTimeInstance获取ms

时间:2014-02-27 07:38:26

标签: java datetime

我希望日期格式为YYYY-MM-DD HH:MM:DD:MS 例如 2009-13-01 10:22:33:44

我没有成功获得MS的问题

 public static DateFormat getFormat() {
    String systemLocale = System.getProperty("user.language"); //$NON-NLS-1$ 
    Locale locale = new Locale(systemLocale);
    DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM, locale);
    return dateFormat;
}

String pattern = "/Date\\((\\d+)\\)/"; //$NON-NLS-1$
String updated = (strValue).replaceAll(pattern, "$1"); //$NON-NLS-1$
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(Long.parseLong(updated));
        return getFormat().format(new Date(calendar.getTimeInMillis()));

我还尝试将DateFormat更改为FULL和LONG,但它不起作用

3 个答案:

答案 0 :(得分:2)

SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");

答案 1 :(得分:2)

您可以使用SimpleDateFormat执行此操作。使用'S'表示毫秒。

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
Date now = new Date();
System.out.println(df.format(now));

打印:

2014-02-27 08:45:25:093

在您的代码中,您可以修改getFormat()功能:

public static DateFormat getFormat() {
    return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
}

(请注意,这会返回一个固定的日期格式,不再依赖于语言环境。)

答案 2 :(得分:1)

如果您知道确切的格式,为什么不尝试在格式字符串中指定它(在我看来,秒和毫秒之间的冒号字符不是“非常”标准)?

yyyy-MM-dd HH:mm:ss:SSS

将它放在SimpleDateFormat的实例中,然后你就可以了。

请注意:您的示例不符合您的格式:13可能无法生效。