我正在使用Java的SimpleDateFormat将毫秒数转换为一种不错的“
hh:mm:ss:SSS”格式的秒表。问题是小时数字段中总是有一些随机数。这是我正在使用的代码:
public static String formatTime(long millis) {
SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss.SSS");
String strDate = sdf.format(millis);
return strDate;
}
如果我摘下hh部分,那么它工作正常。否则,在hh部分中,即使传入的参数(毫秒数)为零,它也会显示诸如“ 07”之类的随机内容。
我对SimpleDateFormat类不太了解。谢谢你的帮助。
以下是我已经做到了,只使用标准的JDK(这将改变工作早在Java 1.1中StringBuilder
回StringBuffer
):
static public String formatMillis(long val) {
StringBuilder buf=new StringBuilder(20);
String sgn="";
if(val<0) { sgn="-"; val=Math.abs(val); }
append(buf,sgn,0,(val/3600000)); val%=3600000;
append(buf,":",2,(val/ 60000)); val%= 60000;
append(buf,":",2,(val/ 1000)); val%= 1000;
append(buf,".",3,(val ));
return buf.toString();
}
/** Append a right-aligned and zero-padded numeric value to a `StringBuilder`. */
static private void append(StringBuilder tgt, String pfx, int dgt, long val) {
tgt.append(pfx);
if(dgt>1) {
int pad=(dgt-1);
for(long xa=val; xa>9 && pad>0; xa/=10) { pad--; }
for(int xa=0; xa<pad; xa++ ) { tgt.append('0'); }
}
tgt.append(val);
}
问题内容: 我想使用H:MM:SS之类的格式以秒为单位格式化持续时间。Java中的当前实用程序旨在格式化时间而不是持续时间。 问题答案: 如果你使用的Java版本早于8 …,则可以使用Joda Time和PeriodFormatter。如果你确实有持续时间(例如,经过的时间量,没有参考日历系统),那么你可能应该大部分时间都在使用-然后可以致电(指定要反映25小时是否变为25小时) 1天1小时与否,
For %U, all days in a new year preceding the first Sunday are considered to be in week 0. For %W, all days in a new year preceding the first Monday are considered to be in week 0. In some implementati
这个程序的输出与预期的一样,它给出2014-12-01 17:30:15。 但是当我在iFormat中将hh替换为hh(与outputformat相同)时,它给出的输出为12Out格式2014-12-01 05:30:15 如果我将两者都转换为小写,也会发生同样的情况。为什么会出现这种类型的不一致?
问题内容: 有没有一种方法可以将UTC时间格式化为我想要的Java中任意字符串格式?基本上,我在考虑让某个类使用时间戳,然后传递它是字符串,告诉它如何格式化,然后它为我返回格式化的字符串。有没有办法做到这一点? 问题答案: java.text.SimpleDateFormat类以对语言环境敏感的方式提供日期的格式设置和解析。 SimpleDateFormat的javadoc标头是详细信息的很好来源
问题内容: 我正在尝试使用这种格式来格式化当前时间。 输出: 有什么建议? 问题答案: 用 由于Go使用以下常量来格式化日期,请参阅此处
类提供了各种格式来格式化时间。 要使用方法。 看下面的例子。 在下面的例子中,我们将演示如何使用不同的格式来格式化时间。 文件:IOTester.java - 执行上面示例代码,得到以下结果 -