我想以以下形式结束一个字符串-5:00
(例如,如果我们在纽约)。使用 Joda 执行此操作的最佳方法是什么?
问问题
6290 次
2 回答
15
不确定这是否是最好的方法,但这是一种方法:
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";
}
几个警告:
DateTimeZone
这从JodaTime获取默认值。您可以对其进行修改以接受传递给该方法的特定 DateTimeZone。- 这会以“-7 小时”之类的格式返回它,但您可以很容易地按照您认为合适的格式对其进行格式化。
希望有帮助。
J.P
于 2014-01-29T01:54:54.413 回答