オブジェクトの中に日付が!?

Deeplからの自動翻訳

オブジェクトは 素晴らしいものです。その柔軟性とスピード、そしてエレガントさは、多くの開発者にとっての第一選択肢となっています。オブジェクト内での日付の使用がより簡単に、より直感的になりました。これからは、オブジェクトの中で文字列ではなく日付を設定することができるようになりました。

どのように機能するのでしょうか?

オブジェクトの中で日付を使うには、データベース設定で、互換性設定オブジェクトでISO日付フォーマットの代わりに日付型を使用する」をチェックするだけです。

これができたら OB SET OB Getは、is date定数を必要とせずに動作します。

OB SET ( ; "myDate"; ) := ( ; "myDate")$myObject$date
$dateOB Get$myObject

オブジェクト記法も使えます。見てみてください。

$myObjectmyDate:= := ...$date
$date$myObjectmyDate

文字列化とパース

互換性は維持されています

4D v16 R6以前では、日付の入ったオブジェクトは JSON Stringifyコマンドを呼び出すと、日付を含むオブジェクトは、ISO 8601の正規化に従って、次のフォーマット “YYYY-MM-DDThhmmss.sssZ” で体系的に “文字列化” されました。逆の操作。 JSON Parseは、デフォルトではこの形式を解釈しないため、文字列が生成されます。

新機能

データベース設定の互換性オプションがチェックされている場合、日付は単に「YYYY-MM-DD」 (やはりISO 8601標準に従う)として JSON stringifyコマンドを呼び出す際に、日付は単に「YYYY-MM-DD」(ISO 8601 標準に準拠) としてフォーマットされます。を使用する場合、この文字列は JSON Parseを使用すると、この文字列はオブジェクトの中で日付として(文字列としてではなく) 設定されます!

モードを動的に変更

必要であれば、このデフォルト設定は SET DATABASE PARAMETERコマンドとDates inside object セレクターを使用してプログラミングすることで、このデフォルト設定を変更することができます。

リマインダSET DATABASE PARAMETER(Dates inside object;option) は、現在のプロセスに対してローカルです。

このoption で指定可能な値が 3 つになりました。

  • String type without time zone (以前はローカルのタイムゾーンを無視するとして知られていました)
  • String type with time zone (以前はタイムゾーンを考慮する)
  • Date type (新機能!)

その結果、JSONデータを4Dにインポートする際に、日付のフォーマットを動的に変更することができるようになりました。

Roland Lannuzel
- プロダクトオーナー&4Dエキスパート -電子工学を学んだ後、産業用ITの分野で開発者兼コンサルタントとして、さまざまなデータベースやテクノロジーを使って顧客のためのソリューションを構築。80年代後半に4Dに惚れ込み、会計、請求書作成、メールシステムなどのビジネスアプリケーションの作成に4Dを使用してきました。現在も、新機能やデータベース開発ツールの定義など、4Dの未来を積極的に切り開いています。