【问题标题】:Getting milliseconds from JSpinner从 JSpinner 获取毫秒数
【发布时间】:2019-08-27 01:53:19
【问题描述】:

我正在尝试提取实际时间与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

【问题讨论】:

  • 嗨!我们可以要求更多的上下文代码吗?如果您将该时间作为默认值,则查看 API 并不清楚微调器中存在哪些值。

标签: java swing date milliseconds jspinner


【解决方案1】:

微调器正在返回“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));

希望对你有帮助

【讨论】:

  • 是的,这行得通。谢谢。但是,如何获得以毫秒为单位的差异?
  • 检查 Date.getTime() - actualDate.getTime() 是否成功:)
  • 请不要教年轻人使用早已过时且臭名昭著的SimpleDateFormat类。至少不是第一选择。而且不是没有任何保留。今天我们在java.time, the modern Java date and time API 和它的DateTimeFormatter 中做得更好。
猜你喜欢
  • 2013-07-28
  • 1970-01-01
  • 2013-09-29
  • 1970-01-01
  • 1970-01-01
  • 2023-03-14
  • 2016-09-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多