public static function createDatetimeFromFormat($format, $str, $timezone = null)
{
$pd = self::parseFromFormat($format, $str);
$gd = self::toGregorian($pd['year'], $pd['month'], $pd['day']);
$date = self::createDateTime('now', $timezone);
$date->setDate($gd[0], $gd[1], $gd[2]);
$date->setTime($pd['hour'], $pd['minute'], $pd['second']);
return $date;
}