Java FastDateFormat HHMMSS类似于HHMMSS的行为
源代码Java FastDateFormat HHMMSS类似于HHMMSS的行为,java,time,apache-commons,Java,Time,Apache Commons,源代码FastDateFormat.getInstance(“hhmmss”).format(Calendar.getInstance())返回格式为“HHMMSSSS”的字符串,例如152712599,而不是1527125 包和版本是“package org.apache.commons.lang3.time;@version$Id:FastDateFormat.java 1591488 2014-04-30 21:49:35Z” 下面的解决方案将提供一个解决方案。该解决方案将删除“hhmms
FastDateFormat.getInstance(“hhmmss”).format(Calendar.getInstance())代码>返回格式为“HHMMSSSS”的字符串,例如152712599,而不是1527125
包和版本是“package org.apache.commons.lang3.time;@version$Id:FastDateFormat.java 1591488 2014-04-30 21:49:35Z”
下面的解决方案将提供一个解决方案。该解决方案将删除“hhmmsss”的最后两位数字
public static <Format> String HHMMssS(final Format calendar)
{
final String HHmmssS = "HHmmssS";
return FastDateFormat.getInstance(HHmmssS).format(calendar).substring(0, HHmmssS.length());
}
公共静态字符串HHMMSS(最终格式日历)
{
最后一个字符串hhmmss=“hhmmss”;
返回FastDateFormat.getInstance(hhmmss).format(calendar).substring(0,hhmmss.length());
}
实际上,您想要的是分秒,而不是毫秒,但您是对的,目前还不支持分秒
请注意,使用单个“S”格式化可能只会得到实际毫秒,因此需要使用格式字符串“hhmmssss”
。子字符串本身的长度应为“hhmmss”.length()
因此,您的实际解决方案应该是:
public static <Format> String HHMMssS(final Format calendar) {
final String HHmmssS = "HHmmssSSS";
return FastDateFormat.getInstance(HHmmssS).format(calendar).substring(0, "HHmmssS".length());
}
公共静态字符串HHMMSS(最终格式日历){
最后一个字符串hhmmss=“hhmmssss”;
返回FastDateFormat.getInstance(hhmmss).format(calendar).substring(0,“hhmmss.length());
}
相关问题(关于解析):
好的,
FastDateFormat
不支持,但我的lib支持,例如:System.out.println(ChronoFormatter.ofTimePattern(“hhmmss”,PatternType.CLDR,Locale.ROOT”);format(PlainTime.nowInSystemTime());
//163354,而且速度更快(特别是如果格式化程序存储为静态常量-线程安全)。