โดยหลักแล้วคุณจะต้องการแปลงวันที่ของ Javascript เป็นวัตถุวันที่ของ Python เมื่อคุณส่งผ่านการเชื่อมต่อเครือข่าย เช่น คำขอ AJAX หรือข้อความ IPC (บน nodejs) การแสดงนี้จะอยู่ในรูปแบบสตริง และคุณสามารถเลือกส่งในรูปแบบใดก็ได้ที่คุณต้องการ คุณสามารถใช้ฟังก์ชัน strptime เพื่อแยกสตริงกลับไปยังอ็อบเจ็กต์วันที่ของ Python มีวิธีมาตรฐานเช่น ISO 8061 ในการส่งและรับวัตถุวันที่และเวลา ในกรณีนี้ หากเราพิจารณาตัวอย่างง่ายๆ จะเข้าใจได้ง่ายขึ้นเล็กน้อย
ตัวอย่าง
import datetime # The string that you get from Javascript date_string = '2017-12-31' date_format = '%Y-%m-%d' try: date_obj = datetime.datetime.strptime(date_string, date_format) print(date_obj) except ValueError: print("Incorrect data format, should be YYYY-MM-DD")
ผลลัพธ์
สิ่งนี้จะให้ผลลัพธ์:
2017-12-31 00:00:00
คุณสามารถใช้คำสั่งอื่นๆ เพื่อแยกวิเคราะห์วันที่ได้ ต่อไปนี้เป็นคำสั่งที่สนับสนุนโดยสตริงรูปแบบของ strptime()
คำสั่ง | ความหมาย |
%a | ชื่อวันทำงานแบบย่อของสถานที่ |
%A | ชื่อเต็มในวันทำงานของสถานที่ |
%b | ชื่อเดือนแบบย่อของโลแคล |
%B | ชื่อเดือนเต็มของโลแคล |
%c | การแสดงวันที่และเวลาที่เหมาะสมของสถานที่ |
%d | วันของเดือนเป็นตัวเลขทศนิยม [01,31] |
%H | Hour (24-hour clock) เป็นเลขฐานสิบ [00,23] |
%I | Hour (12-hour clock) เป็นเลขฐานสิบ [01,12] |
%j | วันของปีเป็นเลขทศนิยม [001,366] |
%m | เดือนเป็นเลขฐานสิบ [01,12] |
%M | นาทีเป็นเลขทศนิยม [00,59] |
%p | Locale มีค่าเท่ากับ AM หรือ PM |
%S | วินาที เป็นเลขฐานสิบ [00,61] |
%U | เลขสัปดาห์ของปี (วันอาทิตย์เป็นวันแรกของสัปดาห์) เป็นเลขฐานสิบ [00,53] ทุกวันในปีใหม่ก่อนวันอาทิตย์แรกจะถือเป็นสัปดาห์ที่ 0 |
%w | วันธรรมดาเป็นเลขฐานสิบ [0(วันอาทิตย์),6] |
%W | เลขสัปดาห์ของปี (วันจันทร์เป็นวันแรกของสัปดาห์) เป็นเลขฐานสิบ [00,53] ทุกวันในปีใหม่ก่อนหน้าวันจันทร์แรกจะถือเป็นสัปดาห์ที่ 0 |
%x | การแสดงวันที่ที่เหมาะสมของสถานที่ |
%X | การแสดงเวลาที่เหมาะสมของสถานที่ |
%y | ปีที่ไม่มีศตวรรษเป็นตัวเลขทศนิยม [00,99] |
%Y | ปีที่มีศตวรรษเป็นเลขฐานสิบ |
%Z | ชื่อเขตเวลา (ไม่มีอักขระหากไม่มีเขตเวลา) |
%% | ตัวอักษร "%" |