วิธีแปลงเวลา Epoch ใน C ++

ฟังก์ชันเวลาในไลบรารีมาตรฐาน C++ จะคืนค่าวินาทีที่ผ่านไปนับตั้งแต่วันที่และเวลาที่เป็นมาตรฐานซึ่งเรียกว่ายุค แม้ว่าค่านี้จะมีข้อมูลทั้งหมดที่จำเป็นในการคำนวณเวลาและวันที่ปัจจุบันของระบบ การเขียนโค้ดการแปลเวลายุคของคุณเองมักมีข้อผิดพลาด การใช้ฟังก์ชันการแปลงเวลาที่จัดไว้ให้ของไลบรารีมาตรฐานทำให้ขั้นตอนการแปลนี้ไม่น่าสนใจ ช่วยให้คุณมุ่งเน้นไปที่ส่วนที่ซับซ้อนมากขึ้นของแอปพลิเคชันของคุณ

ขั้นตอนที่ 1

รวมฟังก์ชันเวลาของไลบรารีมาตรฐาน C++ ไว้ในแอปพลิเคชันของคุณ เพิ่มบรรทัดต่อไปนี้ที่ด้านบนของรายการรวมของคุณ:

รวม

ขั้นตอนที่ 2

หาวินาทีที่ผ่านไปตั้งแต่ยุคนั้นมา และเก็บไว้ในเครื่อง ทำได้โดยเรียก time() และเก็บผลลัพธ์ไว้ในวัตถุประเภท time_t ฟังก์ชันเวลายังยอมรับตัวชี้ไปยังอ็อบเจ็กต์ประเภท time_t เป็นอาร์กิวเมนต์ แต่จะง่ายกว่าในการจัดเก็บอ็อบเจ็กต์นี้ไว้ในสแต็ก:

time_t timeSinceEpoch = เวลา (NULL);

ขั้นตอนที่ 3

สร้างโครงสร้างเวลาเพื่อเก็บผลลัพธ์ของการแปลงเวลา โครงสร้างนี้ถูกกำหนดในไฟล์ส่วนหัว time.h เป็นโครงสร้างที่ชื่อ tm และจัดเตรียมตัวแปรสมาชิกที่ตั้งชื่อตามสะดวกสำหรับแต่ละองค์ประกอบของเวลาที่แปลง:

tm เวลาผลลัพธ์;

ใช้หนึ่งในฟังก์ชันการแปลงในตัวเพื่อเก็บค่า time_t ที่ได้รับก่อนหน้านี้เป็นโครงสร้าง tm เพื่อความง่าย โค้ดต่อไปนี้จะแปลงอ็อบเจ็กต์ time_t เป็นโครงสร้าง UTC tm:

timeResult = gmtime ( &timeSinceEpoch );