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

Java8时间库不能正确解释BST时区

殷浩慨
2023-03-14
public static void main(String[] args) throws ParseException {
    String sTime = "Fri Jun 07 14:07:07 BST 2019";
    DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("EEE MMM dd kk:mm:ss z yyyy");
    ZonedDateTime zd = ZonedDateTime.parse(sTime, FORMATTER);
    System.out.println("The time zone: " + zd.getZone());
    FileTime ftReturn = FileTime.from(zd.toEpochSecond(), TimeUnit.SECONDS);
    System.out.println("File time is: " + ftReturn);

    DateFormat df = new SimpleDateFormat("EEE MMM dd kk:mm:ss z yyyy", Locale.ENGLISH);
    Date dtDD = df.parse(sTime);
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(dtDD);
    FileTime ftReturn1 = FileTime.fromMillis(calendar.getTimeInMillis());
    System.out.println("File time1 is:  " + ftReturn1);
}

共有1个答案

严令秋
2023-03-14

根据https://docs.oracle.com/javase/8/docs/api/java/time/zoneid.html#short_ids:

BST-亚洲/达卡

所以我想你不应该用那个缩写。

 类似资料:
  • 我试图用时间序列创建一个简单的折线图。问题是androidplot没有正确显示数组中的时间值,即日期已关闭。日期应为: 2001年1月1日、2001年2月1日、2001年3月1日、2001年4月1日、2001年5月1日 但我得到了: 2001年1月1日、2001年1月30日、2001年3月1日、2001年3月31日、2001年5月1日 您可以从格式化的调试信息中看到androidplot解释了什么

  • 所以我当前处于“America/Los_Angeles”时区(PDT)中,但是当我创建一个新的moment对象并通过moment tz将其时区设置为我所在的时区('America/Los_Angeles'),如下所示: 错误的时间被返回。具体来说就是提前8个小时。所有其他时区也会出现这种情况。 我是不是从根本上误解了这是怎么工作的? 谢谢你的帮助!

  • 问题内容: 我正在解析一些具有the秒时间戳记datetime的数据。我使用以下代码来解析该字符串并将其转换为datetime对象: Python文档声称这不应该成为接受的问题。但是,我在上面的时间戳中收到此错误 谢谢 问题答案: 做这个: 输出为:

  • 假设T是具有n个节点和高度h的二叉查找树。T的每个节点x存储一个实数x。键。给出以下算法Func1(T. root)的最坏情况时间复杂度。你需要证明你的答案。 x.left() 对于最坏情况下的运行时,我认为这将是O(树的高度),因为这基本上类似于最小()或最大()二元搜索树算法。然而,它是递归的,所以我对是否将O(h)作为最坏的运行时编写有点犹豫。 当我考虑它时,最坏的情况是如果函数执行if(s