mirror of
https://github.com/graphql-python/graphene.git
synced 2025-02-02 12:44:15 +03:00
Added DateTime scalar
This commit is contained in:
parent
c88e933e9e
commit
3c2f2c3c06
27
graphene/types/datetime.py
Normal file
27
graphene/types/datetime.py
Normal file
|
@ -0,0 +1,27 @@
|
|||
from __future__ import absolute_import
|
||||
|
||||
import datetime
|
||||
try:
|
||||
import iso8601
|
||||
except:
|
||||
raise ImportError("iso8601 package is required for DateTime Scalar.\nYou can install it using: pip install iso8601.")
|
||||
from graphql.language import ast
|
||||
|
||||
from .scalars import Scalar
|
||||
|
||||
|
||||
class DateTime(Scalar):
|
||||
|
||||
@staticmethod
|
||||
def serialize(dt):
|
||||
assert isinstance(dt, datetime.datetime)
|
||||
return dt.isoformat()
|
||||
|
||||
@staticmethod
|
||||
def parse_literal(node):
|
||||
if isinstance(node, ast.StringValue):
|
||||
return iso8601.parse_date(node.value)
|
||||
|
||||
@staticmethod
|
||||
def parse_value(value):
|
||||
return datetime.datetime.strptime(value, "%Y-%m-%dT%H:%M:%S.%f")
|
Loading…
Reference in New Issue
Block a user