首页 > 解决方案 > 从 JSpinner 获取毫秒数

问题描述

我试图在实际时间和JSpinner控件定义的时间之间提取毫秒(spnTimer)。微调器格式为:hh:mm:ss。由于我对 Java 很陌生,因此无法获得所需的结果。当我尝试将微调器时间转换为字符串时,我的时间回到了 1970 年。

任何帮助将不胜感激。

String s = spnTimer.getValue().toString();
System.out.println("spinner time: "+ s);

结果:

spinner time: Thu Jan 01 09:43:19 CET 1970

标签: javaswingdatemillisecondsjspinner

解决方案


微调器正在返回“epoch”值。历元传统上对应于特定日期的 0 小时、0 分钟和 0 秒 (00:00:00) 协调世界时 (UTC),该时间因系统而异,并且历元值从那时起测量秒数。试试下面的代码,我敢打赌它会工作

Date spinnerValue = (Date) spinner.getValue();
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy/MMM/dd");
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy/MMM/dd HH:mm:ss");
Date actualDate = sdf2.parse(sdf1.format(new Date()) + " " + sdf.format(spinnerValue), new ParsePosition(0));

希望这可以帮助


推荐阅读