Joda Timeで実際の日付と時刻を正しく取得する方法は?適切に私は私の国での時間を意味します。私は公式ページといくつかのチュートリアルを読みました-ロケールとタイムゾーンについて多くのことがありますが、それは非常に紛らわしいことがわかりました。単純に取得する方法の例は見つかりませんでした。
次の2つの目的で必要です。
UTC + 1(プラハ-チェコ共和国)があるときに現在の時刻を設定するにはどうすればよいですか?
以下は、便利なJoda Timeの擬似コードです。
import org.joda.time.*;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;
public class JodaTimeExample {
public static void main(String[] sm) {
DateTimeFormatter dateFormat = DateTimeFormat
.forPattern("G,C,Y,x,w,e,E,Y,D,M,d,a,K,h,H,k,m,s,S,z,Z");
String dob = "2002-01-15";
LocalTime localTime = new LocalTime();
LocalDate localDate = new LocalDate();
DateTime dateTime = new DateTime();
LocalDateTime localDateTime = new LocalDateTime();
DateTimeZone dateTimeZone = DateTimeZone.getDefault();
System.out
.println("dateFormatr : " + dateFormat.print(localDateTime));
System.out.println("LocalTime : " + localTime.toString());
System.out.println("localDate : " + localDate.toString());
System.out.println("dateTime : " + dateTime.toString());
System.out.println("localDateTime : " + localDateTime.toString());
System.out.println("DateTimeZone : " + dateTimeZone.toString());
System.out.println("Year Difference : "
+ Years.yearsBetween(DateTime.parse(dob), dateTime).getYears());
System.out.println("Month Difference : "
+ Months.monthsBetween(DateTime.parse(dob), dateTime)
.getMonths());
}
}
これがあなたのお役に立てば幸いです。質問があれば教えてください。
追伸:出力を提供してくれたSumit Aroraに感謝します。
dateFormatr : AD,20,2016,2016,26,2,Tue,2016,180,6,28,PM,8,8,20,20,25,20,2,,
LocalTime : 20:25:17.308
localDate : 2016-06-28
dateTime : 2016-06-28T20:25:18.872+05:30
localDateTime : 2016-06-28T20:25:20.260
DateTimeZone : Asia/Kolkata
Year Difference : 14
Month Difference : 173
_LocalTime localTime = new LocalTime();
LocalDate localDate = new LocalDate();
DateTime dateTime = new DateTime();
LocalDateTime localDateTime = new LocalDateTime();
_
このコンストラクタのいずれかがタイムゾーンに日付を作成します。ここで、your timezoneはタイムゾーンDateTimeZone.getDefault();
を意味します
現在の日付と生年月日を比較します。汚れた日付をデータベースにどのように保存しますか?
UTCタイムゾーンの場合、UTC TZのdateTimeと比較できます
_Years.yearsBetween(dateOfBirth, new DateTime(DateTimeZone.UTC));
_
Server TZがある場合は、実行する必要があります
_Years.yearsBetween(dateOfBirth, new DateTime());
_
Server TZがある場合は、実行する必要があります
_Years.yearsBetween(dateOfBirth, new DateTime(DateTimeZone.forID("ClientTZ")));
_