2

我在代码中使用时间遇到了一些麻烦:

txtDauer = new JFormattedTextField();
txtDauer.setFormatterFactory(new DefaultFormatterFactory(
    new DateFormatter(DateFormat.getTimeInstance())));

当我对上述 FormattedTextfield 使用 setValue(0) 时,文本字段显示 01:00:00 而不是 00:00:00。

使用此方法的另一行代码也会出现同样的问题:

public static String convertLongToString(Long time) {
    String strtime = new SimpleDateFormat("HH:mm:ss").format(time);
    return strtime;
}

将此方法与“0”一起使用,它会返回 strtime =“01:00:00”。

4

2 回答 2

2

问题是 TimeZone,您的默认计算机的 TimeZone 是 GMT +1。

解决方案是将 GMT 设置为 +0:

DateFormat df = new SimpleDateFormat("HH:mm:ss");
df.setTimeZone(TimeZone.getTimeZone("GMT"));

运行和预览。

于 2012-02-28T14:49:51.600 回答
1

对于或使用JSpinnerSpinnerDateModelDate,有关使用SimpleDateFormat的示例Date & TimeTime

于 2012-02-28T14:33:44.023 回答