機械翻訳について

マッパーでの日付変換の実行

異なるタイム・ゾーン、書式およびタイムスタンプの日付の変換など、マッパーで日付変換タスクを実行できます。

日付をあるタイム・ゾーンから別のタイム・ゾーンに変換

たとえば、India Standard Time (IST)とGreenwich Mean Time (GMT)を変換します:

  • ISTからGMT:
    fn:adjust-dateTime-to-timezone(xsd:dateTime('2021-05-20T10:49:07.859+05:30'), xsd:dayTimeDuration('PT0H'))
  • GMTからIST:
    fn:adjust-dateTime-to-timezone(xsd:dateTime('2021-05-20T10:00:00Z'), xsd:dayTimeDuration('PT5H30M'))

日付をあるフォーマットから別のフォーマットに変換

フォーマット定義 XSLTマッピング 説明
  • ソース・フォーマット: DD-MON-YYYY
    19-Nov-2021
  • ターゲット書式: YYYY-MM-DD
    2021-11-19
<xsl:variable name="monthListByNum">
<months>
<month id="1" value="jan"/><month id="2" value="feb"/><month id="3" value="mar"/><month id="4" value="apr"/>
<month id="5" value="may"/><month id="6" value="jun"/><month id="7" value="jul"/><month id="8" value="aug"/>
<month id="9" value="sep"/><month id="10" value="oct"/><month id="11" value="nov"/><month id="12" value="dec"/> 
</months>
</xsl:variable>

<xsl:value-of select="concat (substring-after (substring-after ($srcDateString, '-' ), '-' ), '-',  
$monthListByNum/months/month[@value=fn:lower-case (substring-before (substring-after 
($srcDateString, '-' ), '-' ) )]/@id, '-', substring-before ($srcDateString, '-' ) )" 
xml:id="id_18"/>
XSLT変数を使用して、MONからMMへの変換を保持します。

文字列操作を使用して正しい書式を取得します。

現在の日時からの日付の追加および減算

  • データがxsd:dateTimeIS0-8601または(YYYY-MM-DDTHH:MM:SS+TZ)形式の場合:
    • 現在の日時に10日を追加します:
      fn:current-dateTime() + xsd:dayTimeDuration('P10D')
    • 現在の日時に1年を追加します:
      fn:current-dateTime() + xsd:yearMonthDuration('P1Y')
    • 現在の日時から10日を引きます:
      fn:current-dateTime() - xsd:dayTimeDuration('P10D')
    • 現在の日時から1年を減算します:
      fn:current-dateTime() - xsd:yearMonthDuration('P1Y')
  • データがxsd:dateまたはYYYY-MM-DD形式の場合:
    • xsd:dateTime(concat($inputDate,'T00:00:00'))を使用して、データをxsd:dateTime形式に変換します。
  • データが他の形式の場合:
    • xp20:format-dateTime()関数またはconcat()substring-before()substring-after()などの文字列関数を使用して、データをxsd:dateTime形式に変換します。

dateTimeをEpoch時間との間で変換

  • データがxsd:dateTimeIS0-8601または(YYYY-MM-DDTHH:MM:SS+TZ)形式の場合:
    • 現在のdateTimeをエポック時間に変換します:
      (fn:current-dateTime() - xsd:dateTime('1970-01-01T00:00:00')) div xsd:dayTimeDuration('PT1S')
    • エポック時間をdateTimeに変換します:
      (xsd:dateTime('1970-01-01T00:00:00') + ($epochTime * xsd:dayTimeDuration('PT1S')))
  • データがxsd:dateまたはYYYY-MM-DD形式の場合:
    • xsd:dateTime(concat($inputDate,'T00:00:00'))を使用して、データをxsd:dateTime形式に変換します。
  • データが他の形式の場合:
    • xp20:format-dateTime()関数またはconcat()substring-before()substring-after()などの文字列関数を使用して、データをxsd:dateTime形式に変換します。

日付タイムスタンプをUNIXタイムスタンプに変換

(fn:current-dateTime() - xsd:dateTime('1970-01-01T00:00:00')) div xsd:dayTimeDuration('PT1S')

月番号から月名への変換

正確な日時がある場合は、format-dateTime関数を使用できます。

xp20:format-dateTime ((fn:current-dateTime ( ), "[MNn" )