Tags:
Forums: 

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

Get latest news from Blognone
By: Thaina
Windows
on 6 January 2009 - 10:52 #78911

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

By: anu
Contributor
on 6 January 2009 - 12:35 #78919

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

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

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

By: pawinpawin
Writer
on 6 January 2009 - 16:02 #78966

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

___________pawinpawin

By: RuzeriE on 7 January 2009 - 19:12 #79346

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

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

By: anu
Contributor
on 7 January 2009 - 20:21 #79354

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

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 on 8 January 2009 - 09:43 #79474

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

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
on 8 January 2009 - 10:35 #79492

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
on 8 January 2009 - 11:04 #79506

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

ลองดูที่นี่
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 on 8 January 2009 - 19:06 #79663

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