当前位置: 首页 > 知识库问答 >
问题:

使用Joda-Time获取给定日期和时区的UTC偏移量

国言
2023-03-14
DateTimeFormatter dtf = DateTimeFormat.forPattern("ZZ");
DateTimeFormatter dtf1 = DateTimeFormat.forPattern("ddMMMYYYY");

DateTimeZone zone = DateTimeZone.forID("Australia/Melbourne");  

DateTime thisDate = dtf1.parseDateTime("30Jul2013");                                            
System.out.println("\nZone: " + thisDate.withZone(zone));
Zone: 2013-07-30T00:00:00.000+10:00

所以基本上我需要做的就是想办法从2013-07-30T00:00:000000+11:00中提取出+11:00。请救命!

共有1个答案

苍烨然
2023-03-14
public static String getCurrentTimeZoneOffset() {
    DateTimeZone tz = DateTimeZone.getDefault();
    Long instant = DateTime.now().getMillis();

    String name = tz.getName(instant);

    long offsetInMilliseconds = tz.getOffset(instant);
    long hours = TimeUnit.MILLISECONDS.toHours( offsetInMilliseconds );
    String offset = Long.toString( hours );

    return name + " (" + offset + " Hours)";
    // Example: "Mountain Standard Time (-7 Hours)"
}
  • 这将从jodatime获取默认的DateTimeZone。您可以修改它以接受传递到方法中的特定DateTimeZone。
  • 这将以“山区标准时间(-7小时)”这样的格式返回,但您可以很容易地将其格式化为合适的格式。

希望能有所帮助。

太平绅士

 类似资料:
  • 问题内容: 为您准备的头抓板。 我正在从IPInfoDB的API中获取地理IP数据,它从UTC返回 包括 DST 的时区偏移(如果当前已反映)。 例如,我住在EST(-5),目前是DST,因此geo IP API返回()作为偏移量。 因为DST令人头疼,所以这太好了。但是令我惊讶的是,它又引起了头疼。 我将此数据加载到PHP中,以通过AJAX传递给应用程序。我想在应用程序上获取IP地址的实时本地时

  • 问题内容: 要求是简单地获取给定时区的当前时间( 包括正确的DST调整 )。 SO似乎在这方面徘徊了一些问题,但是我似乎找不到以节省时间的低摩擦方式得出的直接答案(在SO,Joda doco或谷歌搜索中)。似乎在给定的输入(当前UTC时间和所需的TZ)下,我应该能够从Joda Time库中链接几个方法来实现我想要的功能,但是在上述示例中似乎希望评估+处理偏移量/应用程序代码中的转换- 如果可能的话

  • Joda Time的时区ID可以简单地用以下代码段显示。 但是,如何显示相应的时区偏移量、时区ID和长名称,使列表看起来如下所示?

  • null null 我最初的想法是使用的方法,并且对于中的每个匹配字段(在最大字段下面),将它们设置为零。但是,我不知道如何从中获取以及如何将它们与进行比较。 我不想使用巨大的方法。

  • 我创建了以下示例代码来演示这种行为,并展示我提出的解决方案。 } 产出:

  • 问题内容: 如何正确获取Joda Time中的实际日期和时间?正确地说,我的意思是在我国的时间。我阅读了官方页面和一些教程- 关于语言环境和时区的很多事情,但我感到很困惑。我没有找到如何简单地获得它的任何示例。 我有两件事需要它: 要获取最新信息以供讨论, 要获取当前时间,我将其与出生日期进行“比较”并计算年龄。 当我拥有UTC + 1(布拉格-捷克共和国)时,如何设置当前时间? 问题答案: 这是