class First(object):
def __init__(self, a):
print "first", a
super(First, self).__init__(20)
class Second(object):
def __init__(self, a):
print "second", a
super(Second, self).__init__()
class Third(First, Second):
def __init__(self):
super(Third, self).__init__(10)
print "that's it"
t = Third()
Выход -
first 10
second 20
that's it
Call to Third () определяет init, определенный в третьем. И вызов super в этой процедуре вызывает init, определенный в First. MRO = [Первый, Второй]. Теперь вызов super в init, определенный в First, продолжит поиск MRO и найдет init, определенный во втором, и любой вызов super ударит объект init по умолчанию. Надеюсь, этот пример прояснит концепцию.
Если вы не называете super от First. Цепь останавливается, и вы получите следующий результат.
first 10
that's it
В шаблоне включение компонента даты и времени z указывает, что формат часового пояса должен соответствовать Общий часовой пояс «стандартный», примерами которого являются Стандартное тихоокеанское время; PST; GMT-08: 00
.
'Z' означает, что часовой пояс соответствует RFC 822 часовой пояс стандартный, например -0800
.
Я думаю, вам нужен DatatypeConverter ...
@Test
public void testTimezoneIsGreenwichMeanTime() throws ParseException {
final Calendar calendar = javax.xml.bind.DatatypeConverter.parseDateTime("2010-04-05T17:16:00Z");
TestCase.assertEquals("gotten timezone", "GMT+00:00", calendar.getTimeZone().getID());
}
Проект рестлета включает класс InternetDateFormat, который может анализировать даты RFC 3339.
Тем не менее, вы можете просто заменить завершающую букву «Z» на «UTC» перед его синтаксическим анализом.
Часовой пояс должен быть примерно таким, как «GMT + 00: 00» или 0000, чтобы его правильно проанализировал SimpleDateFormat - вы можете заменить Z этим строительство.