Время Joda: Первый день недели?

Получают Дату:: Manip от CPAN, тогда:

use Date::Manip;
$string = '18-Sep-2008 20:09'; # or a wide range of other date formats
$unix_time = UnixDate( ParseDate($string), "%s" );

редактирование:

Дата:: Manip является крупным и медленным, но очень гибким в парсинге, и это - чистый жемчуг. Используйте его, если Вы спешите, когда Вы пишете код, и Вы знаете, что не будете спешить при выполнении его.

, например, Использование это для парсинга параметров командной строки однажды на запуске, но не используют его анализирующий большие объемы данных по занятому веб-серверу.

См. комментарии .

авторов

(Благодаря автору первого комментария ниже)

56
задан Basil Bourque 23 January 2014 в 02:55
поделиться

3 ответа

Joda-Time использует стандарт ISO с понедельника по воскресенье. .

У него нет возможности ни получить первый день недели, ни вернуть индекс дня недели на основе любого дня, кроме стандартного понедельника. Наконец, недели всегда рассчитываются по правилам ISO.

45
ответ дан 26 November 2019 в 17:30
поделиться

Seems like you're out of luck, it looks like all of the provided Chronologies inherit the implementation from baseChronology, which supports only ISO definitions, i.e. Monday=1 ... Sunday=7.

You would have to define your own LocaleChronology, possibly modeled on StrictChronology or LenientChronology, add a factory method:

public static LocaleChronology getInstance(Chronology base, Locale locale)

and override the implementation of

public final DateTimeField dayOfWeek()

with a re-implementation of java.util.Calendar.setWeekCountData(Locale desiredLocale) which relies on sun.util.resources.LocaleData..getCalendarData(desiredLocale).

2
ответ дан 26 November 2019 в 17:30
поделиться

Итак, ваш вопрос: как получить DayOfWeek из объекта Joda DateTime? А как насчет этого:

DateTime dt = new DateTime().withYear(2009).plusDays(111);
dt.toGregorianCalendar().getFirstDayOfWeek();
-1
ответ дан 26 November 2019 в 17:30
поделиться
Другие вопросы по тегам:

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