我目前使用Receiver
课程,从我的Midi键盘接收我的Midi事件。
对于每个事件,send()
方法返回一些信息以及MidiEvent的timestamp
。
当我创建Calendar
实例和getTimeInMillis()
时,我得到一个与Receiver's
时间戳完全不同的数字。两个值的差异每次都在变化,所以我知道它不仅仅是一个常数值。
有没有办法在不通过Receiver's
Receiver's
方法的情况下随时获取send()
时间戳值?
我的意思是在一个方法中获得一个时间戳,该方法遵循与Receiver's
时间戳相同的时间刻度。
答案 0 :(得分:1)
我相信你可能会误解操作 - 时间戳Receiver.send()
的预期值是微秒,而不是Calendar
中的毫秒。这意味着你的价格会下降1000倍,这似乎是一个“不断变化的价值”。
我不知道您是想减少时间戳的分辨率,还是使用微秒。这取决于您的应用程序的确切性质,您在邮件中获得的数据以及您希望如何处理这些数据。
编辑:
这是基于您接收数据的假设,而不是您正在填充时间戳值。
如果您需要保留分辨率,可以选择以下选项:
java.sql.Timestamp
的{{1}}子类。这可以将分辨率存储到纳秒(比您需要的更多)。但是,库中的所有标准日期实用程序都有一些奇怪的行为,并且命名空间可能不太理想。Date
和Calendar
是标准库的一部分。如果要分发代码,则必须要求人们使用标准库的版本。由于种种原因,这是不可取的。