9
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

iosのショートカットで現在時刻の年月日時分を別々の変数に入れる

Last updated at Posted at 2020-05-30

**この記事を書いたあと、同じ処理を実現するとてもスマートな方法をコメントで教えていただきました。あまりにスマートすぎて記事が短くなったのでtipsの中にまとめました。iosのショートカット tips ナイスなコメントをしてくださった @Kynako さん、ありがとうございました。


iosに搭載されているショートカットは魅力的なプログラミング環境なんだけど、情報が少ないので、見つけたtipsを記録しておく

#現在時刻の文字列
現在時刻を取得して年月日時分を別々に得るまで
##取得
下の図のアクションで現在時刻を取得して、それを文字列テキストに変換します
キャプチャ.JPG
以下の説明では、最初のアクションを

[日時/{現在の日付}] (1)

次のアクションを

[書類/{日時}からテキストを取得] (2)

と表記します。{}は変数を示します
日時はアクション(2)で「日付として」、日付けフォーマット「中」、時間フォーマット「短」としたとき
2020/05/28 22:47 (a)
あるいは
2020/05/28 5:24 (b)
というフォーマットになります
##年月日の取り出し
正規表現を使って日時文字列から年月日を取り出します

[テキスト/{テキスト}で{[0-9][0-9]}に一致] (3)

日時文字列から数字2文字の組を1要素とするリストを作ります
(a)の例では
20
20
05
28
22
47
(b)の例では
20
20
05
28
24
のリストになります。(b)の例では「時」の要素が1文字なので選ばれません
###年の抽出
リストの第1,2要素を取り出します

[スクリプティング/{一致}から{Rangeの項目}の{1}から{2}までを取得] (4)

出力は
20
20
となります
###月の抽出
リストの第3要素を取り出します

[スクリプティング/{一致}から{項目のインデックス}の{3}を取得] (5)

出力は
05
となります
###日の抽出
リストの第4要素を取り出します

[スクリプティング/{一致}から{項目のインデックス}の{4}を取得] (6)

出力は
28
となります

##時分の取り出し
正規表現を使って日時文字列から時刻を取り出します

[テキスト/{テキスト}で{[ 1][0-9]:[0-9][0-9]}に一致] (7)

日時文字列からスペースか「1」で始まり「:」で時分を分けた要素を取り出します
(a)の例では
22:47
(b)の例では
5:24
となります
(b)の場合は0パディングしたいので先頭のスペースを「0」に変換します

[書類/{一致}の{ ([0-9]):を{0$1:}に置き換え}] (8)

アクション(8)で()で囲まれている正規表現で一致した文字列を「$1」で参照します
出力は(a)の場合は変化なし(マッチしない)、(b)の場合だけ
05:24
となります
次に、「:」で分割してリストを作ります
[テキスト/{アップデートされたテキスト}を{カスタム}{:}で分割]
###時の抽出
リストの第1要素を取り出します

[スクリプティング/{テキストの分割}から{項目のインデックス}の{1}を取得] (9)

出力は(a)の場合は
22
となります
###分の抽出
リストの第2要素を取り出します
[スクリプティング/{テキストの分割}から{項目のインデックス}の{2}を取得] (10)
出力は(a)の場合は
47
となります

これで

アイテム アクション
4
5
6
9
10
年月日時分が別々の出力として得られました

#現在時刻の利用

9
4
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?