デジタル推進課

KNIME・Excel Macro・Power Automateなど日々の業務で使用できる自動化ツールを中心に書き綴ります

KNIME - 時を操る1 日時を作る ~Create Date&Time Range~

f:id:makkynm:20201220094620p:plain

 

 

はじめに

中二病っぽい題名になってしまいましたが、今回からDate&Timeの処理Nodeについて集中して扱っていきたいと思います。日付の処理はよく出てくると思います。これらを習得してより自動化の効率を上げていきましょう。

第一回目は、日付や時間を作るNodeです。

 

 今回のテーマ ~Create Date&Time Range~

f:id:makkynm:20200712142135p:plain

今回のテーマ - Create Date&Time Range

Workflowは下記からダウンロードできます。

hub.knime.com

覚えてほしいこと

今日の日付の自動取得はCreate Date&Time Range

 

やりたいこと

できることを説明するため、3通りのOutputを作っていきたいと思います。

やりたいこと1 - 今日の日付を取得する

今日の日付を自動的に取得する

f:id:makkynm:20200717084348p:plain

やりたいこと1 - 今日の日付を取得する

やりたいこと2 - 1日の時間を作成する

0時から23時まで作ります。

f:id:makkynm:20200717084731p:plain

やりたいこと2 - 1日の時間を作成する

 

やりたいこと3 - 1月のカレンダーを作成する

1月のカレンダーを作ってみます。

f:id:makkynm:20200717084508p:plain

やりたいこと3 - 1月のカレンダーを作成する

 

Create Date&Time Rangeの使い方

Workflow

f:id:makkynm:20200717085329p:plain

Workflow - Create Date&Time Range

Confirm - Before After

さきほどやりたいことで説明しましたが、再度掲載します。

やりたいこと1 - 今日の日付を取得する

個人的に一番使います。自動的に今日の日付を取得できるので変数と組み合わせると自動化作業が楽になります。

f:id:makkynm:20200717084348p:plain

Confirm - Create Date&Time Range やりたいこと1
やりたいこと2 - 1日の時間を作成する

1時間ごとのデータを作成します。24個分のデータを作成します。

f:id:makkynm:20200717084731p:plain

Confirm - Create Date&Time Range やりたいこと2
やりたいこと3 - 1月のカレンダーを作成する

1月のカレンダーを、開始日と終了日、間隔を指定して作成します

f:id:makkynm:20200717084508p:plain

Confirm - Create Date&Time Range やりたいこと3

Configure

大きく4つの設定項目があります。やりたいこと1~3を一気に掲載します。

f:id:makkynm:20200717091051p:plain

Configure - Create Date&Time Range やりたいこと1

f:id:makkynm:20200717092603p:plain

Configure - Create Date&Time Range やりたいこと2

f:id:makkynm:20200717092630p:plain

Configure - Create Date&Time Range やりたいこ3

 

Step1 - Output Settings データ型とコラム名の設定

Step1では、出力したいデータ型とコラム名を指定します。

Output Type:データ型の設定

ここではDate&Time型に関わる4種類が指定できます。

やりたいこと1と3では、日付のみを出力したいのでDate型を、

やりたいこと2では、時間を出力したいのでTime型を指定します。

f:id:makkynm:20200717091751p:plain

Output Settings - データ型の設定

New column Name:新コラム名の設定

次に出力時のコラム名を指定します。

やりたいこと1はToday

やりたいこと2は1月

やりたいこと3はHour

として入力しています。

 

Step2 - Mode Selection 出力行数の設定

出力する行数を指定できます。FixedとVariableはStep3とStep4の設定項目に大きくかかわっています。各意味は下記の通りです。

Fixed:出力行数を指定するモード。Starting PointとEnding Pointで設定された値をここで指定した値で均等に分割して値を計算していく。

Variable:Starting Pointから、Ending PointまでStep4 Ending Point Intervalで指定した感覚で値を計算していく。

 

やりたいこと1では、Fixedで1を指定しました。この場合、1行しか出力しないということになります。

やりたいこと2では、Fixedで24を指定しました。すると、Step3で指定した00:00とStep4で指定した23:00を24で均等分割して出力します。

やりたいこと3では、Variableを指定しています。この場合、Step3で指定した開始日から、Step4で指定した1日ごとの間隔でデータを増加させていき、Step4で指定した終了日まで続くようなデータを作成します。

 

Step3 - Starting Point 開始位置の設定

データの開始日時を指定できます。Use execution date&time使用すると、このNodeが実行された日時を取得できます。

Step4 - Ending Point 終了位置・データ間隔の設定

データの終了日時を指定できます。

Step2でVariableを選んだ場合は、Interval(データ間隔)を指定する必要があります。データ間隔の表記方法は「ちょっと一言」で扱います。

 

 ちょっと一言

Intervalの表記方法

Step2でVariableを選んだ場合は、Interval(データ間隔)を指定する必要があります。

3種類の表記方法があります。

Example 1 - ISO-8601基準に沿った表記

ISO-8601基準に沿った表記は下記のような形です。(NodePitから引用した書き方だと、反応しないので、カンマ等なくしたほうがいいと思います。結局Example3と同じ表記になりますね。)

2年間隔: "+2 years"

-2年間隔: "-2 years"

1年2ヵ月3週間4日間隔: "1 year 2 months 3 weeks 4 days"

15分間隔: "+15 minutes"

-15分間隔: "-15 minutes"

2時間15分3.5秒間隔:  "2 hours 15 minutes 3.5 seconds"

参考:

Period (Java Platform SE 8 )

Duration (Java Platform SE 8 )

 

Example 2 - 略字での表記

年: y

月: M

日: d

時間: H

分: m

秒: s

日付: y: years, M: months, d: days
Time-based duration: H: hours, m: minutes, s: seconds

Example 3 - 通常単語での表記

これは英語と同じですね。sはあってもなくても大丈夫です。連続して表記する場合は空白であれば大丈夫です。(”,”などは認識してくれません)

年: year / years

月: month / months

日: day / days

時間: hour / hours

分: minute / minutes

秒: second / seconds

1年2ヵ月: 1 year 2 months

 

おわりに

Date&Time 型は日々日々のレポート作成において非常に扱えると強いです。変数にすれば、実行時にわざわざConfigureの設定を変える必要がなくなるので、リセットと実行だけをすればよくなるためです。習得すれば1レベルアップできると思います!

ここ分かりにくい、ここ違うんじゃない?、これがあれば参考になる、自分の会社ではこんな風な使い方をしている、などなど、コメントあればいただけると大変助かります!

 

 

 

余談 

 時間といえば、言わずとしれた映画「ミッドナイト・イン・パリ」です。パリをこよなく愛する脚本家のギルが、真夜中に車に乗るとあこがれの1920年代にタイムスリップするお話です。個人的には2つの「今はいつでも満たされない」、「価値観と合う人と一緒にいるのは素晴らしい」というメッセージが印象的でした。あまりにも有名なので、ぜひ一度観てみてください。 

ミッドナイト・イン・パリ(字幕版)

ミッドナイト・イン・パリ(字幕版)

  • 発売日: 2016/05/18
  • メディア: Prime Video
 
ミッドナイト・イン・パリ(吹替版)

ミッドナイト・イン・パリ(吹替版)

  • 発売日: 2016/05/18
  • メディア: Prime Video
 

 

www.youtube.com

参考リンク