wxpython > DatePickerCtrl obj - 如何将 'year' 从 2 位数字转换为 4 位数字?

wxpython > DatePickerCtrl obj - How can I convert 'year' from 2 digits into 4 digits?

问题

In GUI DatePickerCtrl obj, the date format is: mm/dd/yyyy

if I get the DatePickerCtrl obj value, the date format is: mm/dd/yy hh:mm:ss

代码片段

datePicker = wx.adv.DatePickerCtrl( frame, wx.ID_ANY, wx.DefaultDateTime)
print datePicker.GetValue() # This outputs  11/20/15 14:20:55

我可以转换为字符串和切片 [:-8] 但我无法将 '15' 转换为 '2015'

当前

11/20/15

期望

11/20/2015

问题已解决。

import time
fullTime = str(datePicker.GetValue())[:-8]
print fullTime
firstHalf = fullTime[:6]
print "firstHalf is: " , firstHalf
secondHalf = fullTime[-3:]
print "secondHalf", secondHalf
year = int(secondHalf)
if 59 <= year <= 99:
  secondHalf = '19' + secondHalf
else:
  secondHalf = '20' + secondHalf
print "altered_secondHalf", secondHalf
finalTime = firstHalf + secondHalf
print finalTime

GetValue DatePickerCtrl returns wx.DateTime 对象的方法所以答案很简单,如下所示。

dpc = wx.DatePickerCtrl(self)
datetime_obj = dpc.GetValue()
datetime_obj.GetYear()  # -> returns year as four digit integer

这是 wx.DateTimelink。您也可以轻松获取月份 (GetMonth()) 和日期 (GetDay())、小时、分钟等。

您需要使用 wx.DateTime.Format()

datePicker = wx.DatePickerCtrl( frame, wx.ID_ANY, wx.DefaultDateTime)
sel_date = datePicker.GetValue()
print sel_date.Format("%d-%m-%Y")

p.s。 adv 在 wx.adv.DatePickerCtrl 中间做什么?