DatePickerDialog отображает случайное число вместо выбранного месяца [duplicate]

Хотелось добавить довольно простое решение для замены любых значений по умолчанию.

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 #'
39
задан PearsonArtPhoto 10 December 2012 в 14:33
поделиться

4 ответа

Вы можете использовать следующий код:

String mes = this.datepicker.getMonth()/10==0?("0"+this.datepicker.getMonth()): 
String.valueOf(this.datepicker.getMonth());
68
ответ дан Cody Gray 27 August 2018 в 00:42
поделиться

В 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);
23
ответ дан IsaiahJ 27 August 2018 в 00:42
поделиться

Причина, по которой я могу понять, почему это было в Java, выглядит следующим образом:

Рассматривайте дни с 1 января по 31 января.

. День, подобный 22 января, может быть считается 0 месяцем + 22 дня того же года. В то время как 15 февраля можно указать: 1 месяц + 15 дней того же года.

Аналогично 10 декабря можно указать: 11 месяцев + 10 дней в этом году.

Следовательно, Ян -Dec называется 0-11.

3
ответ дан Kapil Jituri 27 August 2018 в 00:42
поделиться

В этом нет ошибки. Подсчет месяцев в классе Calendar основан на нулевом значении. см. это.

2
ответ дан MegaMind 27 August 2018 в 00:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: