小编Joh*_*non的帖子

Java时间:创建自己的时区

我正在尝试迁移旧库以使用"新"Java时间API并在一点上挣扎.

上下文

我现在开发了一段时间用于处理银行业图表的应用程序.所以你有一个连续的价格流,你将它们聚合1天蜡烛(例如),开放,高,低和收盘.

主要问题在于图表只有在市场开放时才需要显示蜡烛.对于外汇,这意味着从纽约周日17:00到纽约周五17:00.所以这一天从纽约时间17:00开始,即使你住在日内瓦,你的蜡烛也需要反映出来.

我使用旧的"Java Time"API执行此操作的方法是创建自己的时区(请参阅下面的代码)

public class RelativeTimezone extends TimeZone {
  private final TimeZone zone;
  private final int addedTime;

  public RelativeTimezone(String id, TimeZone zone, int addedTime) {
    this.zone = zone;
    this.addedTime = addedTime;
    setID(id);
  }

  public final int getAddedTime() {
    return this.addedTime;
  }

  @Override
  public int getRawOffset() {
    return this.zone.getRawOffset() + this.addedTime;
  }

  @Override
  public void setRawOffset(int offsetMillis) {
    this.zone.setRawOffset(offsetMillis - this.addedTime);
  }

  // Other overriding methods that simply forward to "this.zone"
  // ...
}
Run Code Online (Sandbox Code Playgroud)

致电:

TimeZone forexTimezone = …
Run Code Online (Sandbox Code Playgroud)

java time timezone java-time

6
推荐指数
0
解决办法
173
查看次数

标签 统计

java ×1

java-time ×1

time ×1

timezone ×1