Burada sorulana çok benzeyen bir şeyle uğraşıyorum - compare Joda-Time time zones ama benim için çalışmıyor gibi görünüyor. Ben yukarıda hem sysout açıklamalardan 'yanlış' get İlginçtir kiİki Joda-Time DateTime nesnesinin karşılaştırılması
DateTime estDT = new DateTime(DateTimeZone.forID("America/Puerto_Rico")).withMillisOfSecond(0);
DateTime londonDT = new DateTime(DateTimeZone.forID("Europe/London")).withMillisOfSecond(0);
System.out.println("Comparison " + londonDT.isBefore(estDT));
System.out.println("Comparison " + londonDT.isAfter(estDT));
-
İşte ben Joda-TimeDateTime test ediyorum kod parçası. Herkes bu karşılaştırmayı yapmanın doğru yolu ne olacağını açıklayabilir mi?
eşittir. İki ayrı kod satırı, bilgisayarın saatinin iki ayrı örneklemini ifade eder, bu nedenle 2. satır, 1'den daha geç gerçekleşir. DateTime bir milisaniye çözünürlüğüne sahiptir, bu nedenle her iki kod satırı da bilgisayarın saatinin aynı milisaniyesinde yürütüldüğünde, bunlar birbirine eşit olurlar. Bu saf şanstır (şans). Java iş parçacığının yürütülmesi sırasında gecikmesi/askıya alınmasına bağlı olarak veya daha yavaş bir bilgisayarda çalıştırıldığında, bu iki DateTime farklı olabilir. –
İkimiz de çok güçlüydük. İki olasılıkla * muhtemelen * aynı anda, anlıkMillisOfSecond (0) ile yapılan çağrıları gösterir. Bununla birlikte, farklı saniyeler içinde gerçekleştikleri takdirde (örneğin, millis = 999 ve millis = 0), farklılık gösterebilirler. Zaman içinde aynı anda isteniyorsa, withZone() yöntemi, anında iki kez almaktan daha güvenilir olacaktır. Bununla birlikte, OP'nin giriş olarak sağlanan iki farklı zaman dilimi içinde olması daha olasıdır. –