from __future__ import unicode_literals
import arrow
from django.forms import DateTimeField


class ArrowField(DateTimeField):
    input_formats = [
        'YYYY-MM-DD HH:mm:ss',
        'YYYY-MM-DD HH:mm',
        'YYYY-MM-DD',
        'MM/DD/YYYY HH:mm:ss',
        'MM/DD/YYYY HH:mm',
        'MM/DD/YYYY',
        'MM/DD/YY HH:mm:ss',
        'MM/DD/YY HH:mm',
        'MM/DD/YY',
    ]

    def to_python(self, value):
        if isinstance(value, arrow.Arrow):
            return value
        return super(ArrowField, self).to_python(value)

    def strptime(self, value, format):
        return arrow.get(value, format)


class ISO8601ArrowField(ArrowField):
    input_formats = ['iso-8601']

    def strptime(self, value, format):
        if format == 'iso-8601':
            return arrow.get(value)

@@ -62,34 +62,174 @@
 ngo.
-forms import DateTimeField
+conf import settings%0Afrom django.forms import DateTimeField%0Afrom django.utils import timezone%0Afrom django.forms.util import from_current_timezone, to_current_timezone
 %0A%0A%0Ac
@@ -526,16 +526,187 @@
 %0A    %5D%0A%0A
+    def prepare_value(self, value):%0A        if isinstance(value, arrow.Arrow):%0A                return value.naive%0A        return super(ArrowField, self).to_python(value)%0A%0A
     def 
@@ -764,32 +764,90 @@
 , arrow.Arrow):%0A
+                value.to(timezone.get_current_timezone())%0A
             retu
@@ -943,32 +943,32 @@
 value, format):%0A
-
         return a
@@ -989,16 +989,56 @@
 , format
+, tzinfo=timezone.get_current_timezone()
 )%0A%0A%0Aclas

fix timezone handling