30 สิงหาคม 2557

Published สิงหาคม 30, 2557 by with 1 comment

การดึงเวลามาแสดงใน Python 3

สวัสดีทุกท่านครับ วันนี้ผมจะพาไปการดึงเวลามาแสดงใน Python 3 ด้วยโมดูลที่มาพร้อมกับ Python เป็นโมดูลที่ใช้บอกเวลา นั่นคือโมดูล time ครับ ในการใช้งาน เราต้อง import time เข้ามาด้วยครับ
เราสามารถใช้
time.strftime(format[, t])
ดึงค่าเวลาที่ต้องการในการแสดงได้ โดยมีตารางรูปแบบของวัน เวลา ตามนี้ครับ
คำสั่ง ความหมาย
%a ชื่อย่อของวันนั้น
%A ชื่อเต็มของวันนั้น
%b ชื่อย่อของเดือนนั้น
%B ชื่อเต็มของเดือนนั้น
%c วันที่และแสดงเวลาที่เหมาะสม
%d วันของเดือนเป็นเลขฐานสิบ [ 01,31]
%H ชั่วโมง( 24 ชั่วโมง ) เป็นจำนวนทศนิยม [ 00,23]
%I ชั่วโมง ( 12 ชั่วโมง ) เป็นจำนวนทศนิยม [ 01,12]
%j วันของปีเป็นจำนวนทศนิยม [ 001,366]
%m เดือนเป็นเลขฐานสิบ [ 01,12]
%M นาทีเป็นจำนวนทศนิยม [ 00,59]
%p ตำแหน่งที่ตั้งของมีค่าเท่ากันทั้ง AM หรือ PM     *
%S วินาทีเป็นจำนวนทศนิยม [ 00,61]     **
%U จำนวนสัปดาห์ของปี ( วันอาทิตย์เป็นวันแรกของสัปดาห์ ) เป็นจำนวนทศนิยม [ 00,53 ] วันทั้งหมดในวันปีใหม่ที่ผ่านมาวันอาทิตย์แรกถือว่าเป็นสัปดาห์ที่ 0     ***
%w วันธรรมดาเป็นจำนวนทศนิยม[0(Sunday),6].
%W จำนวนสัปดาห์ของปี ( วันจันทร์เป็นวันแรกของสัปดาห์ ) เป็นจำนวนทศนิยม [ 00,53 ] วันทั้งหมดในวันปีใหม่ที่ผ่านมาวันจันทร์แรกถือว่าเป็นสัปดาห์ที่ 0    ***
%x ที่ตั้งการแสดงวันที่เหมาะสม
%X ที่ตั้งการแสดงวันที่เหมาะสม
%y ปีโดยศตวรรษเป็นจำนวนทศนิยม [ 00,99]
%Y ปีศตวรรษที่เป็นตัวเลขทศนิยม
%z แสดงโซนเวลาชดเชยบวก หรือ ลบเวลา UTC / GMT ความแตกต่างจากรูปแบบของ + หาหรือหาที่ H แทนทศนิยมตัวเลขและตัวเลขทศนิยมที่แสดงชั่วโมงนาที [-23:59, +23:59].
%Z เวลาชื่อโซน ( ไม่มีตัวอักษร ถ้าเวลาไม่มีโซนอยู่ )
%% อักษร ' % ' อักขระ

*หมายเหตุ เมื่อใช้กับฟังก์ชัน strptime() , คำสั่ง %p จะมีผลต่อข้อมูลออกผลลัพธ์ชั่วโมงถ้า %I สั่งจะใช้เพื่อแยกชั่วโมง
**หมายเหตุ จริงๆคือช่วง 0 ถึง 61 ; ค่า 60 คือใช้ได้ใน timestamps แทนการกระโดดวินาทีและค่า 61 สนับสนุนเหตุผลทางประวัติศาสตร์
***หมายเหตุ เมื่อใช้กับฟังก์ชัน strptime() % u และน้ำหนักที่ใช้ในการคำนวณ เมื่อวันของสัปดาห์และปี ระบุ โดยอ้างอิงตาม รูปแบบวันที่ที่เข้ากันได้กับที่ระบุไว้ใน RFC 3040 อินเทอร์เน็ตอีเมลมาตรฐาน ดังตัวอย่างดังนี้ครับ
>>from time import gmtime, strftime

>>strftime("%a, %d %b %Y %H:%M:%S +0000", gmtime())

'Thu, 28 Jun 2001 14:17:15 +0000'

ตัวอย่างการนำไปใช้

สมมุติว่า ผมต้องการให้รูปแบบเวลาแสดงเป็น ชั่วโมง(24 ซม.) : นาที : วินาที จะเขียนได้ในรูปแบบ
"%H"+":"+"%M"+":"+"%S" ในคำสั่ง time.strftime("%H"+":"+"%M"+":"+"%S") ครับ
โค้ดตัวอย่าง
import time

while True != False:

    print(time.strftime("%H"+":"+"%M"+":"+"%S"))

    time.sleep(1)

ผลลัพธ์
เวลาจะแสดงตามที่เรากำหนดครับและจะลูปไปเรื่อย ๆ ด้วย while ครับ

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

1 ความคิดเห็น:

  1. ถ้าต้องการให้เงื่อนไขเป็นจริงเสมอ ใช้แบบนี้ก็ได้คับ

    while True:
    ....
    ....
    ....

    ตอบลบ

แสดงความคิดเห็นได้ครับ :)