Преобразуйте строку с датой и временем на дату [дубликат]

Другое событие NullPointerException возникает, когда объявляется массив объектов, а затем сразу же пытается разыменовать его внутри.

String[] phrases = new String[10];
String keyPhrase = "Bird";
for(String phrase : phrases) {
    System.out.println(phrase.equals(keyPhrase));
}

Этот конкретный NPE можно избежать, если порядок сравнения отменяется ; а именно, использовать .equals для гарантированного непустого объекта.

Все элементы внутри массива инициализируются их общим начальным значением ; для любого типа массива объектов, это означает, что все элементы null.

Вы должны инициализировать элементы в массиве перед доступом или разыменованием их.

String[] phrases = new String[] {"The bird", "A bird", "My bird", "Bird"};
String keyPhrase = "Bird";
for(String phrase : phrases) {
    System.out.println(phrase.equals(keyPhrase));
}

22
задан davidism 30 April 2015 в 16:21
поделиться

5 ответов

Другие два ответа прекрасны, но если Вы на самом деле хотите дату чего-то еще, можно использовать datetime модуль:

from datetime import datetime
d = datetime.strptime('2007-07-18 10:03:19', '%Y-%m-%d %H:%M:%S')
day_string = d.strftime('%Y-%m-%d')

Это могло бы быть излишество на данный момент, но это пригодится. Вы видите все спецификаторы формата здесь .

58
ответ дан babbageclunk 29 November 2019 в 03:34
поделиться

В Вашем случае просто используйте разделение:

>>> d1="2007-07-18 10:03:19"
>>> d1.split()[0]
'2007-07-18'
>>> 

(1-я часть после разделения с пробелом)

, Если Вы настаиваете на том, чтобы использовать strptime, формат "%Y-%m-%d %H:%M:%S":

>>> import time
>>> time.strptime(d1,"%Y-%m-%d %H:%M:%S")
time.struct_time(tm_year=2007, tm_mon=7, tm_mday=18, tm_hour=10, tm_min=3, tm_sec=19, tm_wday=2, tm_yday=199, tm_isdst=-1)
>>> time.strftime("%Y-%m-%d", _)
'2007-07-18'
>>> 
8
ответ дан gimel 29 November 2019 в 03:34
поделиться

Вероятно, не, что Вы ищете, но Вы могли просто разделить строку:

post["date"].split()[0]

дал бы Вам '2007-07-18'

2
ответ дан warvariuc 29 November 2019 в 03:34
поделиться

Можно использовать модуль parsedatetime .

>>> from parsedatetime.parsedatetime import Calendar
>>> c = Calendar()
>>> c.parse("2007-07-18 10:03:19")
((2008, 11, 19, 10, 3, 19, 2, 324, 0), 2)
1
ответ дан 29 November 2019 в 03:34
поделиться

Можно использовать mx.DateTime модуль от , eGenix

import mx

date_object = mx.DateTime.Parser.DateTimeFromString('2007-07-18 10:03:19')
print "%s-%s-%s" % (date_object.year, date_object.month, date_object.day)

произведет: 2007-07-18

1
ответ дан warvariuc 29 November 2019 в 03:34
поделиться
Другие вопросы по тегам:

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