Tags:

คือผมมีข้อมูลวันที่ อยู่ใน datetime.date เป็นปี ค.ศ.
แต่ผมต้องการแสดงเป็นปี พ.ศ. ไม่ทราบว่าต้องทำยังไงครับ

Comments

By: Thaina
Windows
Thaina's blog
on 06/01/09 10:52 #78911 toggle
Thaina's picture

เอา ค.ศ. มาบวก 543 ครับ


My Blog

By: anu
Contributor
anu's blog
on 06/01/09 12:35 #78919 toggle
anu's picture

today = datetime.date.today()
yearBE = today.year + 543

อย่างนี้เปล่าครับ

import datetime
today = datetime.date.today()
yearBE = today.year + 543
yearBE
2552

By: pawinpawin
Writer
pawinpawin's blog
on 06/01/09 16:02 #78966 toggle
pawinpawin's picture

อย่าลืมถ้าต้องเกี่ยวข้องกับปี่ที่น้อยกว่า พ.ศ. 2484 วันขึ้นปีใหม่จะเป็นวันสงกรานต์นะครับ

___________pawinpawin

By: RuzeriE
RuzeriE's blog
on 07/01/09 19:12 #79346 toggle
RuzeriE's picture

เล่นอย่างนี้เลยหรอครับ
ไม่มีแบบที่ใช้ locale หรอครับ

แต่ ขอบคุณครับ

By: anu
Contributor
anu's blog
on 07/01/09 20:21 #79354 toggle
anu's picture

งั้นก็แบบนี้ครับ

locale.setlocale(locale.LC_TIME, 'th_TH')
'th_TH'
datetime.datetime.now().strftime('%Ey')
'2552'

datetime.datetime.now().strftime(locale.nl_langinfo(locale.D_T_FMT))
'\xbe. 7 \xc1.\xa4. 2552, 20:18:18'
locale.nl_langinfo(locale.D_T_FMT)
'%a %e %b %Ey, %H:%M:%S'

By: RuzeriE
RuzeriE's blog
on 08/01/09 9:43 #79474 toggle
RuzeriE's picture

ผมลองแล้วมันได้แบบนี้ครับ

import locale
locale.setlocale(locale.LC_TIME, 'th_TH')

Traceback (most recent call last):
File "<pyshell#1>", line 1, in
locale.setlocale(locale.LC_TIME, 'th_TH')
File "C:\Python25\lib\locale.py", line 476, in setlocale
return _setlocale(category, locale)
Error: unsupported locale setting

By: anu
Contributor
anu's blog
on 08/01/09 10:35 #79492 toggle
anu's picture

locale.setlocale(locale.LC_ALL, 'Thai_Thailand.874')
'Thai_Thailand.874'
datetime.datetime.now().strftime('%Y %x')
'2009 8/1/2552'
datetime.datetime.now().strftime('%A %a %B %b')
'\xbe\xc4\xcb\xd1\xca\xba\xb4\xd5 \xbe\xc4. \xc1\xa1\xc3\xd2\xa4\xc1 \xc1.\xa4.'

%Ey ใช้ไม่ได้ ทั้งๆ ที่ %x โชว์ พ.ศ. ถูก
แต่ก็ไม่มีคำสั่งอะไรให้แสดงปี พ.ศ. แยก
คงต้องแยกออกมาแล้ว +543 ตามค.ห.แรกเอาล่ะครับ

ถ้าพวกชื่อวันชื่อเดือน อะไรไม่มีปัญหา ลองดู strftime ทั้งหมดที่นี่

By: anu
Contributor
anu's blog
on 08/01/09 11:04 #79506 toggle
anu's picture

ไม่มีจริงๆ ครับ

ลองดูที่นี่
http://linux.thai.net/~thep/th-locale/


2.5 LC_TIME

Thai names, as well as abbreviations, for the months and the days of week are defined in this category. The official calendar used in Thailand is solar calendar, in accordance with Gregorian calendar, with the exception that Buddhist Era (1 B.E. = 542 B.C.) is used instead of Anno Domini. Thais always express dates in day, month, year order, both in full and abbreviated forms. Regarding time format, the 24-hour format is usually used in Thailand. AM/PM is normally used only in the displays where there is no surrounding text.

Unfortunately, the era definition is not a part of LC_TIME in POSIX, although some implementations have taken such enhancement from ISO/IEC 14652. Hence, we cannot define Buddhist Era in the context of POSIX yet.
abbreviated days (%a) อา, จ, อ, พ, พฤ, ศ, ส
days (%A) อาทิตย์, จันทร์, อังคาร, พุธ, พฤหัสบดี, ศุกร์, เสาร์
abbriviated months (%b) ม.ค., ก.พ., มี.ค., เม.ย., พ.ค., มิ.ย., ก.ค., ส.ค., ก.ย., ต.ค., พ.ย., ธ.ค.
months (%B) มกราคม, กุมภาพันธ์, มีนาคม, เมษายน, พฤษภาคม, มิถุนายน, กรกฎาคม, สิงหาคม, กันยายน, ตุลาคม, พฤศจิกายน, ธันวาคม
appropriate date & time format (%c) %a %e %b %Y, %H:%M:%S
e.g. อา. 13 มิ.ย. 2542, 22:48:32
appropriate date format (%x) %d/%m/%Y
e.g. 13/06/2542
appropriate time format (%X) %H:%M:%S
e.g. 22:48:32
AM/PM sign (%p) AM; PM
appropriate 12-hour clock format (%r) %I:%M:%S %p
e.g. 10:48:32 PM

By: RuzeriE
RuzeriE's blog
on 08/01/09 19:06 #79663 toggle
RuzeriE's picture

ขอบคุณครับ :D