Получают Дату:: 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 является крупным и медленным, но очень гибким в парсинге, и это - чистый жемчуг. Используйте его, если Вы спешите, когда Вы пишете код, и Вы знаете, что не будете спешить при выполнении его.
, например, Использование это для парсинга параметров командной строки однажды на запуске, но не используют его анализирующий большие объемы данных по занятому веб-серверу.
См. комментарии .
авторов
(Благодаря автору первого комментария ниже)
Joda-Time использует стандарт ISO с понедельника по воскресенье. .
У него нет возможности ни получить первый день недели, ни вернуть индекс дня недели на основе любого дня, кроме стандартного понедельника. Наконец, недели всегда рассчитываются по правилам ISO.
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).
Итак, ваш вопрос: как получить DayOfWeek из объекта Joda DateTime? А как насчет этого:
DateTime dt = new DateTime().withYear(2009).plusDays(111);
dt.toGregorianCalendar().getFirstDayOfWeek();