The
datetime64
data type was introduced in NumPy 1.7.0 (see http://docs.scipy.org/doc/numpy/reference/arrays.datetime.html).
datetime64
data type, start a Python shell and import NumPy as follows:$ python >>> import numpy as np
Create a datetime64
from a string (you can use another date if you like):
>>> np.datetime64('2015-04-22') numpy.datetime64('2015-04-22')
In the preceding code, we created a datetime64
for April 22, 2015, which happens to be Earth Day. We used the YYYY-MM-DD format, where Y corresponds to the year, M corresponds to the month, and D corresponds to the day of the month. NumPy uses the ISO 8601 standard (see http://en.wikipedia.org/wiki/ISO_8601). This is an international standard to represent dates and times. ISO 8601 allows the YYYY-MM-DD, YYYY-MM, and YYYYMMDD formats. Check for yourself, as follows:
>>> np.datetime64('2015-04-22') numpy.datetime64('2015-04-22') >>> np.datetime64('2015-04') numpy.datetime64('2015-04')
>>> local = np.datetime64('1677-01-01T20:19') >>> local numpy.datetime64('1677-01-01T20:19Z')
Additionally, a string in the format [hh:mm] specifies an offset that is relative to the UTC time zone. Create a datetime64
with 9
hours offset, as follows:
>>> with_offset = np.datetime64('1677-01-01T20:19-0900') >>> with_offset numpy.datetime64('1677-01-02T05:19Z')
The Z
at the end stands for Zulu time, which is how UTC is sometimes referred to.
Subtract the two datetime64
objects from each other:
>>> local - with_offset numpy.timedelta64(-540,'m')
The subtraction creates a NumPy timedelta64
object, which in this case, indicates a 540
minute difference. We can also add or subtract a number of days to a datetime64
object. For instance, April 22, 2015 happens to be a Wednesday. With the arange()
function, create an array holding all the Wednesdays from April 22, 2015 until May 22, 2015 as follows:
>>> np.arange('2015-04-22', '2015-05-22', 7, dtype='datetime64') array(['2015-04-22', '2015-04-29', '2015-05-06', '2015-05-13', '2015-05-20'], dtype='datetime64[D]')
Note that in this case, it is mandatory to specify the dtype
argument, otherwise NumPy thinks that we are dealing with strings.