def clean_from_time(self): """Si from_rime esta vacio pone la hora actual""" data = self.cleaned_data['from_time'] if data: return data else: now = to_current_timezone(timezone.now()) return datetime.time(now.hour, now.minute)
def decompress(self,value): if value: value = to_current_timezone(value) hour = value.hour%12 if hour == 0: hour = 12 return [value.month,value.day,value.year,hour,value.minute,value.second,'a' if value.hour < 12 else 'p'] return [None,None,None,None,None,None]
def is_due_today(self): """ Check if the task due date is today """ date_now = to_current_timezone(timezone.now()).date() if self.due_date == date_now: return True else: return False
def decompress(self, value): if value: value = to_current_timezone(value) d = value.date() hour = value.time().hour minute = value.time().minute return (d, hour, minute,) else: return (None, None, None, None)
def clean(self, value): value = super(TzAwareTimeField, self).to_python(value) print value dt = to_current_timezone(timezone.now()) print dt new_time = dt.replace( hour=value.hour, minute=value.minute, second=value.second, microsecond=value.microsecond) print from_current_timezone(new_time) return from_current_timezone(new_time)
def is_due(self): """ Return True if this task crossed due date, otherwise false. """ # Convert to current tz, otherwise we are comparing with utc. the date # will be entered respect to our current tz date_now = to_current_timezone(timezone.now()).date() if not self.is_complete() and self.due_date < date_now: return True else: return False
def decompress(self, value): if value: value = to_current_timezone(value) hour = value.hour % 12 if hour == 0: hour = 12 return [ value.month, value.day, value.year, hour, value.minute, value.second, 'a' if value.hour < 12 else 'p' ] return [None, None, None, None, None, None]
def index(request): class MyForm(forms.Form): a_datetime = SplitDateTimeTimeZoneField() a_time = SplitTimeTimeZoneField() tz = pytz.timezone("Australia/Sydney") timezone.activate(tz) now = to_current_timezone(timezone.now()).replace(tzinfo=tz) my_form = MyForm(initial={ 'a_datetime': now, 'a_time': now.time().replace(tzinfo=now.tzinfo) }) return http.HttpResponse(my_form.as_p())
def decompress(self, value): '''由于我们的MongoDB中集合里时间以String格式存储, 若用到时间控件则选进行格式转换. ''' if value: try: if isinstance(value, basestring): try: value = datetime.datetime.strptime(value, '%Y-%m-%d %H:%M:%S') except Exception: # 任意格式str转DateTime. value = dateutil.parser.parse(value) # MongoDB中的DateTimeField转化成python格式时并没有带上timezone信息, 默认是UTC. value = to_current_timezone(utc.localize(value)) return [value.date(), value.time().replace(microsecond=0)] except Exception: pass return [None, None]
def decompress(self, value): if value: value = to_current_timezone(value) return [value.date(), value.time().replace(microsecond=0)] return [None, None]
def prepare_value(self, value): if isinstance(value, datetime.datetime): value = to_current_timezone(value) return value
def prepare_value(self, value): if isinstance(value, datetime.datetime): value = to_current_timezone(value).time() return super(TzAwareTimeField, self).prepare_value(value)
def prepare_value(self, value): value = super(DateTimeField, self).prepare_value(value) if isinstance(value, datetime.datetime): value = to_current_timezone(value) return value
def process_time(value, field): if not value: return "" value = to_current_timezone(utc.localize(value)) return value.strftime("%Y-%m-%d %H:%M:%S")