Хотелось добавить довольно простое решение для замены любых значений по умолчанию.
import string
class SafeDict(dict):
def __init__(self, missing='#', empty='', *args, **kwargs):
super(SafeDict, self).__init__(*args, **kwargs)
self.missing = missing
self.empty = empty
def __getitem__(self, item):
return super(SafeDict, self).__getitem__(item) or self.empty
def __missing__(self, key):
return self.missing
values = SafeDict(a=None, c=1})
string.Formatter().vformat('{a} {c} {d}', (), values)
# ' 1 #'
Вы можете использовать следующий код:
String mes = this.datepicker.getMonth()/10==0?("0"+this.datepicker.getMonth()):
String.valueOf(this.datepicker.getMonth());
В Android, когда вы выбираете дату из списка выбора даты, она начинает подсчитывать месяцы от 0. Таким образом, это означает, что возвращаемое значение месяца всегда равно месяцу и минус; 1.
Например, если вы выбираете Август (8-й месяц), затем он возвращает 8 & minus; 1 = 7.
Это означает, что вам нужно добавить 1 к значению месяца, которое вы получаете от DatePicker.
Вы можете сделать это следующим образом:
DatePicker datepicker = new DatePicker();
int day = date.getDayOfMonth();
int month = date.getMonth()+1; // here I added 1 to the month
int year = date.getYear();
t.setText(day+" / "+month+" / "+year);
Причина, по которой я могу понять, почему это было в Java, выглядит следующим образом:
Рассматривайте дни с 1 января по 31 января.
. День, подобный 22 января, может быть считается 0 месяцем + 22 дня того же года. В то время как 15 февраля можно указать: 1 месяц + 15 дней того же года.
Аналогично 10 декабря можно указать: 11 месяцев + 10 дней в этом году.
Следовательно, Ян -Dec называется 0-11.
В этом нет ошибки. Подсчет месяцев в классе Calendar основан на нулевом значении. см. это.