最終的に次の形式の文字列を作成したいと思い-5:00
ます(たとえば、ニューヨークにいる場合)。Jodaを使用してこれを行うための最良の方法は何ですか?
質問する
6290 次
2 に答える
15
それが最善の方法かどうかはわかりませんが、次の1つの方法があります。
DateTimeFormatter dtf = DateTimeFormat.forPattern("ZZ");
DateTimeZone zone;
zone = DateTimeZone.forID("America/Los_Angeles");
System.out.println(dtf.withZone(zone).print(0)); // Outputs -08:00
zone = DateTimeZone.forOffsetHoursMinutes(-5, 0);
System.out.println(dtf.withZone(zone).print(0)); // Outputs -05:00
DateTime dt = DateTime.now();
System.out.println(dtf.print(dt)); // Outputs -05:00 (time-zone dependent)
ただし、この例には、時間の先行ゼロは含まれていません。それがあなたが本当に求めていること(先行ゼロを除外する方法)なら、私は助けにはなりません。
于 2012-06-05T15:59:04.310 に答える
3
時間単位のオフセットを取得するための簡単な方法
public static String getCurrentTimeZoneOffset() {
DateTimeZone tz = DateTimeZone.getDefault();
Long instant = DateTime.now().getMillis();
long offsetInMilliseconds = tz.getOffset(instant);
long hours = TimeUnit.MILLISECONDS.toHours( offsetInMilliseconds );
String offset = Long.toString( hours );
return offset + " Hours";
}
カップルの警告:
- これは、JodaTime
DateTimeZone
からデフォルトを取得します。メソッドに渡される特定のDateTimeZoneを受け入れるように変更できます。 - これにより、「-7時間」のような形式で返されますが、適切と思われる形式で簡単にフォーマットできます。
お役に立てば幸いです。
JP
于 2014-01-29T01:54:54.413 に答える