1
我想創建一個java.util.Clock自動裝配的組件。我這樣做是爲了讓我可以爲JUnit測試自動裝入固定時鐘。我想提供一個方法,該方法從提供的LocalDateTime返回自時代以來的毫秒數。它不像我期待的那樣工作:如何使用時鐘從LocalOutTime的紀元獲得毫秒?
@Component
public class MyClock {
@Autowired
Clock clock;
public long getMilliseconds(LocalDateTime time) {
ZonedDateTime zdt = ZonedDateTime.of(time, clock.getZone());
return time.toInstant(zdt.getOffset()).toEpochMilli();
}
}
因此,您需要time.toInstant()的偏移量。我可以看到獲得偏移量的唯一方法是使用時鐘區域創建ZonedDateTime。
我在做什麼錯或不理解?
好吧,'LocalDateTime'沒有時區。所以'2017-05-04 20:26'與倫敦和紐約的時代不同。所以你必須提供一個時區。這正是你的代碼所顯示的 - 什麼不清楚? –
謝謝你的解釋。事實證明,在其他地方有一個錯誤,所以這是正常工作。 – wxkevin