---
schema_version: "1"
id: 5b5b6ba05d2ad3c8712519724e734b516bfacfede22ed9249ac8bd9544764553
title: 時間の加算と減算
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/dataweave/2.6/dataweave-cookbook-add-and-subtract-time.md
canonical_url: https://docs.mulesoft.com/jp/dataweave/2.6/dataweave-cookbook-add-and-subtract-time
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 39f2038d7d696fb4bc9a8a4d544f39647ee0b1095912efd92ed954c3e4e73180
description: MuleSoft Documentation Site
release: "2.6"
latest: false
---
# 時間の加算と減算

この DataWeave の例では、日時型に対処する複数の加算および減算操作を示します。 開始する前に、Mule 4 アプリケーションでは DataWeave のバージョン 2.x が使用されることに注意してください。Mule 3 アプリケーションでの DataWeave については、​[DataWeave バージョン 1.2 の例](#1.2@dataweave::dataweave-examples.adoc)​を参照してください。 他の DataWeave バージョンの場合は、DataWeave の目次のバージョンセレクターを使用できます。

この例では、以下を使用します。

- Sting (文字列) 型を Period (期間) 型に強制変換する ​`as`​ 関数。
- 年、月、日、時、分、秒の指定子を提供する Period (期間) データ型用の ​`P<date>T<time>`​。  
    たとえば、​`|P2Y9M1D|`​ は、2 年 9 か月と 1 日、​`|PT5H4M3S|`​ は 5 時間 4 分 3 秒の期間をそれぞれ表します。

DataWeave スクリプト:

```dataweave
%dw 2.0
output application/json
var numberOfDays = 3
---
{
  oneDayBefore: |2019-10-01T23:57:59Z| - |P1D|,
  threeDaysBefore: |2019-10-01T23:57:59Z| - ("P$(numberOfDays)D" as Period),
  a: |2019-10-01| - |P1Y|,
  b: |P1Y| - |2019-10-01|,
  c: |2019-10-01T23:57:59Z| - |P1Y|,
  d: |2019-10-01T23:57:59Z| + |P1Y|,
  e: |2019-10-01T23:57:59| - |P1Y|,
  f: |PT9M| - |23:59:56|,
  g: |23:59:56| + |PT9M|,
  h: |23:59:56-03:00| - |PT9M|,
  u: |23:59:56-03:00| - |22:59:56-03:00|,
  j: |23:59:56-03:00| - |22:59:56-00:00|,
  k: |2019-10-01T23:57:59| - |P2Y9M1D| - |PT57M59S| + |PT2H|,
  l: |23:59:56| - |22:59:56|,
  o: |2019-10-01| - |2018-09-23|,
  p: |2019-10-01T23:57:59Z| - |2018-10-01T23:57:59Z|,
  q: |2019-10-01T23:57:59| - |2018-10-01T23:57:59|
}
```

出力 JSON:

```json
{
  "oneDayBefore": "2019-09-30T23:57:59Z",
  "threeDaysBefore": "2019-09-28T23:57:59Z",
  "a": "2018-10-01",
  "b": "2018-10-01",
  "c": "2018-10-01T23:57:59Z",
  "d": "2020-10-01T23:57:59Z",
  "e": "2018-10-01T23:57:59",
  "f": "23:50:56",
  "g": "00:08:56",
  "h": "23:50:56-03:00",
  "u": "PT1H",
  "j": "PT4H",
  "k": "2017-01-01T01:00:00",
  "l": "PT1H",
  "o": "PT8952H",
  "p": "PT8760H",
  "q": "PT8760H"
}
```

`o: |2019-10-01| - |2018-09-23|`​ の動作は Mule 4.3.0 で変更されました。Mule 4.3.0 でサポートされる DataWeave 2.3.0 では ​`"o": "PT8952H"`​ が返されます。Mule 4.2.0 でサポートされる DataWeave 2.2.0 では ​`"o": "P1Y8D"`​ が返されます。2.2.0 の動作を復元するには、​`-M-Dcom.mulesoft.dw.date_minus_back_compatibility=true`​ を設定できます。ただし、この設定は Studio のプレビューウィンドウには影響しません。Studio およびオンプレミスデプロイメントでのこの設定に関する指針は、​[「システムプロパティ」](https://docs.mulesoft.com/mule-runtime/latest/mule-app-properties-system)​を参照してください。CloudHub デプロイメントについては、​[「CloudHub 上のアプリケーションのプロパティ管理」](https://docs.mulesoft.com/cloudhub/cloudhub-manage-props)​を参照してください。

## [](#関連情報)関連情報

- [Period (期間)](https://docs.mulesoft.com/jp/dataweave/2.6/dataweave-types#dw_type_dates_period)
- [日付の解析](https://docs.mulesoft.com/jp/dataweave/2.6/dataweave-cookbook-parse-dates)
- [DataWeave の型](https://docs.mulesoft.com/jp/dataweave/2.6/dataweave-types)
- [DataWeave セレクター](https://docs.mulesoft.com/jp/dataweave/2.6/dataweave-selectors)
- [DataWeave の解説書](https://docs.mulesoft.com/jp/dataweave/2.6/dataweave-cookbook)