|
6 | 6 |
|
7 | 7 | from .lazy_dict import LazyDict |
8 | 8 |
|
9 | | - |
10 | | -DATE_FORMAT = '%Y-%m-%d' |
11 | | -DATETIME_FORMAT = '%Y-%m-%d %H:%M:%S' |
| 9 | +if datetime.date(1, 1, 1).strftime('%04Y') == '4Y': |
| 10 | + DATE_F_FORMAT = '%Y-%m-%d' |
| 11 | + DATETIME_F_FORMAT = '%Y-%m-%d %H:%M:%S' |
| 12 | +else: |
| 13 | + DATE_F_FORMAT = '%04Y-%m-%d' |
| 14 | + DATETIME_F_FORMAT = '%04Y-%m-%d %H:%M:%S' |
| 15 | +DATE_FORMAT = DATE_F_FORMAT |
| 16 | +DATETIME_FORMAT = DATETIME_F_FORMAT |
| 17 | +DATE_P_FORMAT = '%Y-%m-%d' |
| 18 | +DATETIME_P_FORMAT = '%Y-%m-%d %H:%M:%S' |
12 | 19 | TIME_FORMAT = '%H:%M:%S' |
13 | 20 |
|
14 | 21 |
|
@@ -57,13 +64,13 @@ def object_hook(cls, obj): |
57 | 64 | if 'type{datetime}' in obj: |
58 | 65 | try: |
59 | 66 | return datetime.datetime \ |
60 | | - .strptime(obj["type{datetime}"], DATETIME_FORMAT) |
| 67 | + .strptime(obj["type{datetime}"], DATETIME_P_FORMAT) |
61 | 68 | except ValueError: |
62 | 69 | pass |
63 | 70 | if 'type{date}' in obj: |
64 | 71 | try: |
65 | 72 | return datetime.datetime \ |
66 | | - .strptime(obj["type{date}"], DATE_FORMAT) \ |
| 73 | + .strptime(obj["type{date}"], DATE_P_FORMAT) \ |
67 | 74 | .date() |
68 | 75 | except ValueError: |
69 | 76 | pass |
@@ -98,9 +105,9 @@ def default(self, obj): |
98 | 105 | elif isinstance(obj, datetime.time): |
99 | 106 | return {'type{time}': obj.strftime(TIME_FORMAT)} |
100 | 107 | elif isinstance(obj, datetime.datetime): |
101 | | - return {'type{datetime}': obj.strftime(DATETIME_FORMAT)} |
| 108 | + return {'type{datetime}': obj.strftime(DATETIME_F_FORMAT)} |
102 | 109 | elif isinstance(obj, datetime.date): |
103 | | - return {'type{date}': obj.strftime(DATE_FORMAT)} |
| 110 | + return {'type{date}': obj.strftime(DATE_F_FORMAT)} |
104 | 111 | elif isinstance(obj, (isodate.Duration, datetime.timedelta)): |
105 | 112 | return {'type{duration}': isodate.duration_isoformat(obj)} |
106 | 113 | elif isinstance(obj, set): |
|
0 commit comments