ปรับเขตเวลาใน Scheduled Cloud Flow ใน Power Automate เพื่อให้แสดงเวลาได้อย่างถูกต้องด้วยฟังก์ชัน convertTimeZone()
Power Automate Cloud Flow เป็นเครื่องมือที่ช่วยให้เราสามารถสร้างกระบวนการทำงานอัตโนมัติ โดยหนึ่งในฟีเจอร์ที่สำคัญคือ Scheduled Cloud Flow ซึ่งช่วยให้เราสามารถกำหนดเวลาการทำงานล่วงหน้า เช่น การส่งอีเมลอัตโนมัติทุกวันหรือทุกสัปดาห์
อย่างไรก็ตาม เมื่อตั้งค่า Flow ใน Power Automate เรามักจะพบว่า เวลาที่ใช้ในระบบเป็น UTC (Coordinated Universal Time) แทนที่จะเป็นเวลาท้องถิ่นของเรา ซึ่งอาจทำให้เวลาที่แสดงในอีเมลไม่ตรงกับที่คาดหวัง บทความนี้จะอธิบาย วิธีจัดการเขตเวลาใน Scheduled Cloud Flow พร้อมแนวทางการแก้ไขปัญหาโดยใช้ฟังก์ชัน convertTimeZone()
ความเข้าใจพื้นฐานเกี่ยวกับ UTC และเวลาท้องถิ่น
- UTC (Coordinated Universal Time) เป็นเวลามาตรฐานสากลที่ใช้เป็นฐานในการคำนวณเวลาในระบบต่าง ๆ ทั่วโลก รวมถึงการตั้งเวลาในระบบคอมพิวเตอร์ เช่น เซิร์ฟเวอร์, API และบริการออนไลน์ รวมถึง Power Automate โดย UTC ไม่ได้รับผลกระทบจากการปรับเวลาในฤดูร้อน (Daylight Saving Time)
- เวลาท้องถิ่น (Local Time) เป็นเวลาที่ปรับให้ตรงกับเขตเวลาที่คุณอาศัยอยู่ เช่น:
- เขตเวลาประเทศไทย: UTC+7 (เวลาของประเทศไทยเร็วกว่า UTC 7 ชั่วโมง)
- เขตเวลา Eastern Standard Time (EST): UTC-5 (เวลาของฝั่งตะวันออกของสหรัฐฯ ช้ากว่า UTC 5 ชั่วโมง)
จากภาพตัวอย่างในบทความนี้คือ การตั้งค่า Scheduled Cloud Flow ใน Power Automate เพื่อให้ Flow ทำงานตามเวลาที่กำหนด และแก้ไขปัญหาเวลาที่แสดงในอีเมลเป็น UTC โดยใช้ฟังก์ชัน convertTimeZone() เพื่อแปลงเวลาให้ตรงกับเขตเวลาท้องถิ่นของผู้ใช้
1. ตั้งค่าตามเวลาท้องถิ่น
ในหมายเลข 1: เมื่อเริ่มต้นสร้าง Flow แบบ Scheduled Cloud Flow:
- กำหนด เวลาเริ่มต้น (Start Time) เป็นเวลาท้องถิ่น เช่น 13:30 น. ของประเทศไทย
- เลือกความถี่ (Frequency) เช่น ทุก 10 นาที
สิ่งที่เกิดขึ้นเบื้องหลัง: Power Automate จะ แปลงเวลาเริ่มต้น (Start Time) จากเวลาท้องถิ่นเป็น UTC เพื่อใช้ในระบบ เช่น 13:30 น. ของประเทศไทย (UTC+7) จะถูกแปลงเป็น 06:30 น. (UTC) โดยอัตโนมัติ ใน Recurrence Parameters หมายเลข 2
2. เวลาใน Recurrence Parameters
ในหมายเลข 2: เมื่อคุณตั้งค่า Scheduled Cloud Flow:
- Start Time ที่คุณกำหนดเป็นเวลาท้องถิ่น เช่น 13:30 น. (เวลาประเทศไทย) แต่ในระบบ Flow จะ แปลงเวลาเป็น UTC โดยอัตโนมัติ และแสดงผลในรูปแบบที่มีสัญลักษณ์ UTC ต่อท้าย เช่น: 2025-02-09T06:30:00.000Z
ซึ่งหมายความว่า:
- 2025-02-09: วันที่ (ปี-เดือน-วัน)
- T: ตัวคั่นระหว่างวันที่และเวลา
- 06:30:00.000: เวลาใน UTC (ชั่วโมง:นาที:วินาที.มิลลิวินาที)
- Z: สัญลักษณ์ที่แสดงว่าเวลานี้เป็น UTC หรือ “Zulu Time”
สิ่งที่ต้องเข้าใจเกี่ยวกับ UTC และ Start Time
- แม้ว่าระบบจะแสดง Start Time ในรูปแบบ UTC:
- Flow จะยังคงทำงาน ตามเวลาท้องถิ่น ที่คุณตั้งไว้เดิม เช่น 13:30 น. ของประเทศไทย (UTC+7)
- เวลาที่ถูกแปลงเป็น UTC ในระบบมีผลแค่สำหรับการประมวลผลในเบื้องหลัง แต่ไม่กระทบกับเวลาทำงานจริงของ Flow
ตัวอย่างผลลัพธ์
หากคุณตั้ง Start Time เป็น 13:30 น. ตามเวลาประเทศไทย (UTC+7): ระบบจะแปลงและแสดงเป็น UTC ในรูปแบบ: 2025-02-09T06:30:00.000Z อย่างไรก็ตาม Flow จะทำงานครั้งแรกตรงเวลา 13:30 น. ตามเวลาท้องถิ่นของคุณ หากกำหนดให้ทำงานซ้ำทุก 10 นาที Flow จะทำงานครั้งถัดไปใน 13:40 น., 13:50 น. และต่อไปเรื่อย ๆ
3. ปัญหาเมื่อแสดงเวลาในอีเมล
ในหมายเลข 3 และ หมายเลข 4 : เวลาในเนื้อหาอีเมลยังคงแสดงตาม UTC เช่น เวลา 06:30 น. (UTC) แทนที่จะแสดง 13:30 น. (เวลาท้องถิ่น) เนื่องจาก ฟังก์ชัน utcNow() ที่ใช้งานใน Flow ดึงค่าปัจจุบันของ UTC โดยไม่ได้แปลงให้ตรงกับเขตเวลาท้องถิ่น
4. วิธีแก้ปัญหาด้วย convertTimeZone
ในหมายเลข 5 เพื่อให้เวลาที่แสดงในอีเมลสอดคล้องกับเขตเวลาท้องถิ่น สามารถใช้ฟังก์ชัน convertTimeZone ได้ดังนี้:
รูปแบบของฟังก์ชัน convertTimeZone() ใน Power Automate ฟังก์ชัน convertTimeZone() ใช้สำหรับ แปลงค่าเวลาจากเขตเวลาเดิมไปยังเขตเวลาปลายทาง และสามารถกำหนดรูปแบบของวันที่ที่ต้องการแสดงผลได้
convertTimeZone(<ค่าเวลา>, <เขตเวลาเริ่มต้น>, <เขตเวลาปลายทาง>, <รูปแบบวันที่>)
พารามิเตอร์ | ความหมาย | ตัวอย่างค่า |
<ค่าเวลา> | เวลาที่ต้องการแปลง | utcNow() (เวลาปัจจุบันใน UTC) หรือ ‘2025-02-09T06:30:00.000Z’ |
<เขตเวลาเริ่มต้น> | เขตเวลาของค่าที่ระบุ | ‘UTC’, ‘Pacific Standard Time’, ‘Eastern Standard Time’ |
<เขตเวลาปลายทาง> | เขตเวลาที่ต้องการแปลงไป | ‘SE Asia Standard Time’, ‘Central European Standard Time’ |
<รูปแบบวันที่> | รูปแบบของเวลาที่แสดง | ‘dd MMM yyyy HH:mm:ss’, ‘MM/dd/yyyy hh:mm tt’ |
ตามตัวอย่าง แปลงเวลา UTC เป็นเวลาท้องถิ่นประเทศไทย
convertTimeZone(utcNow(), ‘UTC’, ‘SE Asia Standard Time’, ‘dd MMM yyyy HH:mm:ss’)
- utcNow(): ดึงเวลา UTC ปัจจุบัน
- ‘UTC’: เขตเวลาเริ่มต้น
- ‘SE Asia Standard Time’: เขตเวลาของประเทศไทย dd MMM yyyy HH:mm:ss’: รูปแบบวันที่และเวลา เช่น 09 Feb 2025 13:30:00
โดย Date/Time Zone สามารถดูได้ที่ https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/default-time-zones?view=windows-11
5. ตัวอย่างผลลัพธ์ ตามรูปหมายเลข 6
This is a scheduled test email sent by the automated system to verify the recurrence process.
Recurrence Process:
Email Details:
– Sent on: 09 Feb 2025 13:30:00 – Frequency: Every 10 minutes
สรุป
ฟังก์ชัน convertTimeZone() เป็นวิธีที่ง่ายและมีประสิทธิภาพในการจัดการเวลาใน Power Automate โดยช่วยให้คุณสามารถ:
✅ แปลงเวลาจาก UTC เป็นเวลาท้องถิ่น
✅ ปรับเวลาให้ตรงกับเขตเวลาของผู้ใช้
✅ แสดงผลวันที่และเวลาในรูปแบบที่เข้าใจง่าย
ฟังก์ชันนี้จำเป็นที่ต้องใช้หากคุณต้องการให้ Flow แสดงเวลาให้ถูกต้องและตรงกับโซนเวลาท้องถิ่นของคุณ
หลักสูตรที่เกี่ยวข้อง
Microsoft 365 for End User Training
Microsoft SharePoint Online For Front-End
Microsoft Power Apps (Canvas App) Workshop
Microsoft Power Automate (Cloud)
Microsoft Copilot Studio (Former Power Virtual Agent)
สนใจสอบถามรายละเอียดเพิ่มเติม
Tel: 021198405
Line: @M365th
Email: Sales@m365.co.th