FastDateFormat HHmmssS 行为类似于 HHmmSSS
FastDateFormat HHmmssS behaviour like HHmmSSS
源 FastDateFormat.getInstance("HHmmssS").format(Calendar.getInstance());
returns 格式为 "HHmmssSSS" 的字符串,例如152712599 而不是预期的 1527125.
包和版本是"package org.apache.commons.lang3.time; @version $Id: FastDateFormat.java 1591488 2014-04-30 21:49:35Z"。
下面的解决方案将提供解决方法。
解决方法切断了 'HHmmssSSS' 的最后 2 位数字。
public static <Format> String HHMMssS(final Format calendar)
{
final String HHmmssS = "HHmmssS";
return FastDateFormat.getInstance(HHmmssS).format(calendar).substring(0, HHmmssS.length());
}
实际上你想要的是分秒,而不是毫秒,但你是对的,目前还没有支持(还?)。
请注意,使用单个 'S' 对其进行格式化可能只会给您实际的毫秒数,因此您需要使用格式字符串 "HHmmssSSS"
。子字符串本身的长度应为 "HHmmssS".length()
.
所以你的实际 workaround/solution 应该是:
public static <Format> String HHMMssS(final Format calendar) {
final String HHmmssS = "HHmmssSSS";
return FastDateFormat.getInstance(HHmmssS).format(calendar).substring(0, "HHmmssS".length());
}
相关问题(关于解析):
Deci and Centi Seconds parsing in java
源 FastDateFormat.getInstance("HHmmssS").format(Calendar.getInstance());
returns 格式为 "HHmmssSSS" 的字符串,例如152712599 而不是预期的 1527125.
包和版本是"package org.apache.commons.lang3.time; @version $Id: FastDateFormat.java 1591488 2014-04-30 21:49:35Z"。
下面的解决方案将提供解决方法。
解决方法切断了 'HHmmssSSS' 的最后 2 位数字。
public static <Format> String HHMMssS(final Format calendar)
{
final String HHmmssS = "HHmmssS";
return FastDateFormat.getInstance(HHmmssS).format(calendar).substring(0, HHmmssS.length());
}
实际上你想要的是分秒,而不是毫秒,但你是对的,目前还没有支持(还?)。
请注意,使用单个 'S' 对其进行格式化可能只会给您实际的毫秒数,因此您需要使用格式字符串 "HHmmssSSS"
。子字符串本身的长度应为 "HHmmssS".length()
.
所以你的实际 workaround/solution 应该是:
public static <Format> String HHMMssS(final Format calendar) {
final String HHmmssS = "HHmmssSSS";
return FastDateFormat.getInstance(HHmmssS).format(calendar).substring(0, "HHmmssS".length());
}
相关问题(关于解析): Deci and Centi Seconds parsing in java