最近熱愛 low-code
或 no-code
的解決方案,簡單拖拉幾個設定,或是複製之前寫好的 JSON,就可以快速完成一個日常的自動化工作,減少越來越多的人工操作,重點是幾乎不用花錢,也不用花心思在部署上。今天我要來整理幾個 Azure Logic Apps 與 Power Automate 會用到的日期函數,因為我的自動化工作大多都跟日期時間有點關係。
Azure Logic App 的 Consumption Plan 每個月有 4,000 次觸發動作是完全免費的!
基本「日期」觀念
其實在 Azure Logic Apps 與 Power Automate 裡面並沒有「日期」型別,所有的 timestamp
都是以 ISO 8601 的「字串」來表示。
-
表達一份 UTC 日期時間格式
2021-07-04T03:30:08.9644580Z
日期與時間之間會有個 T
字元,結尾有個 Z
字元,就代表這是一個 UTC 時間!
-
轉換一份無法判斷的日期時間格式
如果你有個字串為 10212011
,雖然人眼看的出是 月日年
(MMddyyyy
),但是系統卻無法正確解析,此時就可以利用字串串接的技巧,重新格式化成看的懂的格式 (MM-dd-yyyy
),再透過 formatDateTime 轉換成你想要轉換過去的格式 (yyyy-MM-dd
)。
formatDateTime(concat(substring('10212011', 0,2), '-', substring('10212011', 2,2), '-', substring('10212011', 4,4)), 'yyyy-MM-dd')
注意:如果 formatDateTime 函式沒有加上第二個 format
參數,預設輸出的格式為 yyyy-MM-ddTHH:mm:ss.fffffffK
!
-
轉換一份 Epoch time (Unix time) 時間為 timestamp
Epoch 時間又稱 Unix time,一般來說都是以 UTC 時間來計算的,而且都是從 1970-01-01T00:00:00Z
到現在時間的 Seconds (秒數)!
所以你可以用 addSeconds 函式來將一個數值轉換成 timestamp
格式:
addSeconds('1970-01-01T00:00:00Z', 1625384178)
偶爾會有人將 Epoch time 改用 Milliseconds (豪秒) 單位,這時就要記得先除以 1000
才能進行轉換:
addSeconds('1970-01-01T00:00:00Z', div(1625384178964, 1000))
這裡有個好用的 Epoch & Unix Timestamp Conversion Tools 可以幫你轉換 Epoch 時間格式。另外,如果你想在 Linux 環境下快速取得當下的 Epoch 時間,可以使用 date +%s
(秒) 或 date +%s%3N
(豪秒) 命令!
常見的日期函式
-
取得 UTC 當前時間
utcNow()
2021-07-04T03:30:08.9644580Z
-
取得台北標準時間的當前時間
convertFromUtc(utcNow(), 'Taipei Standard Time')
2021-07-04T11:30:08.9644580
-
指定輸出特定日期時間格式(台北標準時間)- 日期部分
formatDateTime(convertFromUtc(utcNow(), 'Taipei Standard Time'), 'yyyy-MM-dd')
2021-07-04
自訂日期格式的語法詳見 Custom date and time format strings 文件。
-
指定輸出特定日期時間格式(台北標準時間)- 時間部分
formatDateTime(convertFromUtc(utcNow(), 'Taipei Standard Time'), 'hh:mm:ss')
11:30:08
-
取得今天星期幾(台北標準時間)
dayOfWeek(convertFromUtc(utcNow(), 'Taipei Standard Time'))
0
注意:星期天為 0
,星期一為 1
,依此類推,星期六為 6
!
-
取得當月的第一天 (台北標準時間)
formatDateTime(startOfMonth(convertFromUtc(utcNow(), 'Taipei Standard Time')), 'yyyy-MM-dd')
2021-07-01
-
取得次月的第一天 (台北標準時間)
formatDateTime(startOfMonth(addToTime(convertFromUtc(utcNow(), 'Taipei Standard Time'), 1, 'month')), 'yyyy-MM-dd')
2021-08-01
-
取得當月的最後一天 (台北標準時間)
formatDateTime(subtractFromTime(startOfMonth(addToTime(convertFromUtc(utcNow(), 'Taipei Standard Time'), 1, 'month')), 1, 'second'), 'yyyy-MM-dd')
2021-07-31
相關連結