Skip to content

วันเวลากับภาษา Python

สวัสดีผู้อ่านทุกท่านครับ บทความนี้จะพาผู้อ่านไปเขียนโปรแกรมภาษา Python เรื่องวันเวลากันครับ

ในการเขียนโปรแกรมภาษา Python ในการดึงข้อมูลวันและเวลา มีไลบรารีรองรับ 2 ไลบรารีดังนี้

  1. ไลบรารี time สำหรับเข้าถึงข้อมูลเวลา
  2. ไลบรารี datetime สำหรับเข้าถึงข้อมูลวันและเวลา

ไลบรารี time

เป็นไลบรารีสำหรับเข้าถึงเวลา
ในการใช้งานไลบรารีนี้ต้อง

import time

เข้ามาทุกครั้งครับ

คำสั่งดึงข้อมูลเวลา Unix
เวลาของระบบปฎิบัติการ Unix เริ่มต้นขึ้นวันที่ 1 มกราคม ค.ศ. 1970 โดยเวลาของ Unix มีหน่วยเป็นวินาที

time.time()

เช่น

>>> import time
>>> print(time.time())
1429778332.527298

คำสั่งดึงข้อมูลเวลาจากเครื่อง

time.localtime()

โดยข้อมูลจะออกเป็น tuple

>>> import time
>>> timeis = time.localtime()
>>> print(timeis)
time.struct_time(tm_year=2015, tm_mon=4, tm_mday=23, tm_hour=15, tm_min=24, tm_sec=11, tm_wday=3, tm_yday=113, tm_isdst=0)

หากต้องการดึงข้อมูลชั่วโมง เวลา และ วินาที สามารถทำได้ง่าย ๆ ตามตัวอย่างนี้ครับ

>>> import time
>>> timeis = time.localtime()
>>> print("เวลา : ",timeis.tm_hour,":",timeis.tm_min,":",timeis.tm_sec)
เวลา :  15 : 24 : 11

คำสั่งรับข้อมูลเวลาในรูปแบบสตริง

time.ctime()

เช่น

>>> import time
>>> time.ctime()
'Thu Apr 23 15:42:52 2015'

คำสั่งกำหนดการแสดงข้อมูลเวลา

time.strftime(format[, t])

เช่น

>>> import time
>>> timeis = time.localtime()
>>> a  = time.strftime('%A %d %B %Y, %H:%M:%S', timeis)
>>> print(a)
Thursday 23 April 2015, 15:24:11

ดูค่าข้อมูล format time ได้ที่ http://docs.python.org/library/time.html#time.strftime

คำสั่งแปลงเวลากลับไปเป็นเวลา Unix

time.mktime()

เช่น

>>> import time
>>> timeis = time.localtime()
>>> time.mktime(timeis)
1429777451.0

คำสั่งหน่วงเวลาของระบบ

time.sleep(วินาที)

เช่น

time.sleep(2)

เวลาจะเดินช้าลง 2 วินาทีครับ


 

ไลบรารี datetime

เป็นไลบรารีสำหรับเข้าถึงข้อมูลวันและเวลา
ในการใช้งานไลบรารีนี้ต้อง

import datetime

เข้ามาทุกครั้งครับ

คำสั่งดึงข้อมูลเวลา

datetime.datetime.now()

เช่น

import datetime
now = datetime.datetime.now()
print(now)

ผลลัพธ์
2015-04-23 15:58:54.626620
สามารถกำหนดข้อมูลที่ต้องการดึงได้ดังนี้ครับ

import datetime
now = datetime.datetime.now()
print("ปี : %d" % now.year)
print("เดือน : %d" % now.month)
print("วันที่ : %d" % now.day)
print("ชั่งโมง : %d" % now.hour)
print("นาที : %d" % now.minute)
print("วินาที : %d" % now.second)
print("ไมโครวินาที : %d" % now.microsecond)

ผลลัพธ์
ปี : 2015
เดือน : 4
วันที่ : 23
ชั่งโมง : 16
นาที : 7
วินาที : 47
ไมโครวินาที : 837812

คำสั่งแสดง ปี เดือน วัน

datetime.date.today()

เช่น

>>> from datetime import date
>>> today = date.today()
>>> today
datetime.date(2015, 4, 23)

คำสั่งแสดงเวลาหลังเริ่มต้นค.ศ.
คำสั่งนี้ ค.ศ. เริ่มต้นวันที่ 1 มกราคม ค.ศ. 1

date.fromordinal(จำนวนวันหลังเริ่มต้น ค.ศ.)

เช่น

>>> from datetime import date
>>> d = date.fromordinal(730920) # วันที่ 730920 หลังวันที่ 1. 1. 0001
>>> d
datetime.date(2002, 3, 11)

คำสั่งแสดงเวลาในรูปแบบ isoformat

datetime.date.isoformat()

เช่น

>>> import datetime
>>> now = datetime.datetime.now()
>>> print(now.isoformat())
2015-04-23T16:22:16.876522

คำสั่งจัดรูปแบบเวลา datetime

datetime.strftime(format)

เช่น

>>> from datetime import datetime, date, time
>>> dt = datetime.strptime("21/11/06 16:30", "%d/%m/%y %H:%M")
>>> dt
datetime.datetime(2006, 11, 21, 16, 30)
>>> dt.strftime("%A, %d. %B %Y %I:%M%p")
'Tuesday, 21. November 2006 04:30PM'

ดูค่าข้อมูล format datetime ได้ที่ https://docs.python.org/3/library/time.html#time.strftime

โมดูล isoweek
เป็นโมดูลสำหรับใช้แสดงค่า ISO week ครับ
รองรับทั้ง Python 2 , Python 3
ใช้ License: BSD
สามารถติดตั้งได้โดยใช้คำสั่ง pip:
pip install isoweek
ตัวอย่างการใช้งาน

from isoweek import Week
w = Week(2015, 4) # Week(ปี, สัปดาห์)
print("Week %s starts on %s" % (w, w.monday()))

print("Current week number is", Week.thisweek().week)
print("Next week is", Week.thisweek() + 1)

ผลลัพธ์

Week 2015W04 starts on 2015-01-19
Current week number is 17
Next week is 2015W18

ติดตามบทความต่อไปนะครับ
ขอบคุณครับ

Published on Categories ไม่มีหมวดหมู่

About wannaphong

วรรณพงษ์ ภัททิยไพบูลย์ ผู้ดูแลเว็บ wannaphong.com และผู้เขียนบทความบล็อกนี้ นักศึกษาชั้นปีที่ 1 สาขาวิทยาการคอมพิวเตอร์และสารสนเทศ คณะวิทยาศาสตร์ประยุกต์และวิศวกรรมศาสตร์ มหาวิทยาลัยขอนแก่น วิทยาเขตหนองคาย

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องที่ต้องการถูกทำเครื่องหมาย *