@@ -1873,15 +1873,13 @@ def weeks(w):
1873
1873
return w * DAYS_PER_WEEK
1874
1874
1875
1875
1876
- class DateConverter (units .ConversionInterface ):
1876
+ class BaseDateConverter (units .ConversionInterface ):
1877
1877
"""
1878
- Converter for datetime.date and datetime.datetime data,
1879
- or for date/time data represented as it would be converted
1880
- by :func:`date2num`.
1878
+ A base converter for datetime.date and datetime.datetime data, or for
1879
+ date/time data represented as it would be converted by :func:`date2num`.
1881
1880
1882
1881
The 'unit' tag for such data is None or a tzinfo instance.
1883
1882
"""
1884
-
1885
1883
@staticmethod
1886
1884
def axisinfo (unit , axis ):
1887
1885
"""
@@ -1930,6 +1928,24 @@ def default_units(x, axis):
1930
1928
return None
1931
1929
1932
1930
1931
+ class DateConverter (BaseDateConverter ):
1932
+ @staticmethod
1933
+ def un_convert (value , unit , axis ):
1934
+ return num2date (value )
1935
+
1936
+
1937
+ class Datetime64Converter (BaseDateConverter ):
1938
+ @staticmethod
1939
+ def un_convert (value , unit , axis ):
1940
+ return np .datetime64 (num2date (value ).replace (tzinfo = None ))
1941
+
1942
+
1943
+ class DatetimeConverter (BaseDateConverter ):
1944
+ @staticmethod
1945
+ def un_convert (value , unit , axis ):
1946
+ return num2date (value )
1947
+
1948
+
1933
1949
class ConciseDateConverter (DateConverter ):
1934
1950
"""
1935
1951
Converter for datetime.date and datetime.datetime data,
@@ -1968,6 +1984,6 @@ def axisinfo(self, unit, axis):
1968
1984
default_limits = (datemin , datemax ))
1969
1985
1970
1986
1971
- units .registry [np .datetime64 ] = DateConverter ()
1987
+ units .registry [np .datetime64 ] = Datetime64Converter ()
1972
1988
units .registry [datetime .date ] = DateConverter ()
1973
- units .registry [datetime .datetime ] = DateConverter ()
1989
+ units .registry [datetime .datetime ] = DatetimeConverter ()
0 commit comments