Java JFormattedTextfield时间格式

时间:2012-02-28 14:28:03

标签: java swing time jformattedtextfield

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

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

当我对上面的FormattedTextfield使用setValue(0)时,textfield显示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”。

2 个答案:

答案 0 :(得分:2)

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

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

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

Run and preview.

答案 1 :(得分:1)

对于DateDate & TimeTime使用JSpinner SpinnerDateModel,有关使用SimpleDateFormat

的示例