2015-01-25 02:18:54 +08:00
{
"metadata": {
"name": "",
2015-01-27 23:21:16 +08:00
"signature": "sha256:4dcac17430f8456d8b357f87e754eeda54837fbcd49ef8901953fec4b2dcab52"
2015-01-25 02:18:54 +08:00
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Dates and Times"
]
},
2015-01-26 20:27:13 +08:00
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* Basics\n",
"* strftime\n",
"* strptime\n",
"* timedelta"
]
},
2015-01-27 23:21:16 +08:00
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Basics"
]
},
2015-01-25 02:18:54 +08:00
{
"cell_type": "code",
"collapsed": false,
"input": [
"from datetime import datetime, date, time"
],
"language": "python",
"metadata": {},
"outputs": [],
2015-01-25 02:29:58 +08:00
"prompt_number": 1
2015-01-25 02:18:54 +08:00
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"year = 2015\n",
"month = 1\n",
"day = 20\n",
"hour = 7\n",
"minute = 28\n",
"second = 15"
],
"language": "python",
"metadata": {},
"outputs": [],
2015-01-25 02:29:58 +08:00
"prompt_number": 2
2015-01-25 02:18:54 +08:00
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"dt = datetime(year, month, day, hour, minute, second)"
],
"language": "python",
"metadata": {},
"outputs": [],
2015-01-25 02:29:58 +08:00
"prompt_number": 3
2015-01-25 02:18:54 +08:00
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"dt.hour, dt.minute, dt.second"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
2015-01-25 02:29:58 +08:00
"prompt_number": 4,
2015-01-25 02:18:54 +08:00
"text": [
"(7, 28, 15)"
]
}
],
2015-01-25 02:29:58 +08:00
"prompt_number": 4
2015-01-25 02:18:54 +08:00
},
2015-01-25 22:22:23 +08:00
{
"cell_type": "markdown",
"metadata": {},
"source": [
2015-01-27 23:21:16 +08:00
"Extract the equivalent date object:"
2015-01-25 22:22:23 +08:00
]
},
2015-01-25 02:18:54 +08:00
{
"cell_type": "code",
"collapsed": false,
"input": [
"dt.date()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
2015-01-25 02:29:58 +08:00
"prompt_number": 5,
2015-01-25 02:18:54 +08:00
"text": [
"datetime.date(2015, 1, 20)"
]
}
],
2015-01-25 02:29:58 +08:00
"prompt_number": 5
2015-01-25 02:18:54 +08:00
},
2015-01-25 22:22:23 +08:00
{
"cell_type": "markdown",
"metadata": {},
"source": [
2015-01-27 23:21:16 +08:00
"Extract the equivalent time object:"
2015-01-25 22:22:23 +08:00
]
},
2015-01-25 02:18:54 +08:00
{
"cell_type": "code",
"collapsed": false,
"input": [
"dt.time()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
2015-01-25 02:29:58 +08:00
"prompt_number": 6,
2015-01-25 02:18:54 +08:00
"text": [
"datetime.time(7, 28, 15)"
]
}
],
2015-01-25 02:29:58 +08:00
"prompt_number": 6
2015-01-25 02:18:54 +08:00
},
2015-01-25 22:22:23 +08:00
{
"cell_type": "markdown",
"metadata": {},
"source": [
2015-01-27 23:21:16 +08:00
"When aggregating or grouping time series data, it is sometimes useful to replace fields of a series of datetimes such as zeroing out the minute and second fields:"
2015-01-25 22:22:23 +08:00
]
},
2015-01-25 02:18:54 +08:00
{
"cell_type": "code",
"collapsed": false,
"input": [
"dt.replace(minute=0, second=0)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
2015-01-25 02:29:58 +08:00
"prompt_number": 7,
2015-01-25 02:18:54 +08:00
"text": [
"datetime.datetime(2015, 1, 20, 7, 0)"
]
}
],
2015-01-25 02:29:58 +08:00
"prompt_number": 7
2015-01-25 02:18:54 +08:00
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## strftime"
]
},
2015-01-25 22:22:23 +08:00
{
"cell_type": "markdown",
"metadata": {},
"source": [
2015-01-27 23:21:16 +08:00
"Format a datetime string:"
2015-01-25 22:22:23 +08:00
]
},
2015-01-25 02:18:54 +08:00
{
"cell_type": "code",
"collapsed": false,
"input": [
"dt.strftime('%m/%d/%Y %H:%M')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
2015-01-25 02:29:58 +08:00
"prompt_number": 8,
2015-01-25 02:18:54 +08:00
"text": [
"'01/20/2015 07:28'"
]
}
],
2015-01-25 02:29:58 +08:00
"prompt_number": 8
2015-01-25 02:18:54 +08:00
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## strptime"
]
},
2015-01-25 22:22:23 +08:00
{
"cell_type": "markdown",
"metadata": {},
"source": [
2015-01-27 23:21:16 +08:00
"Convert a string into a datetime object:"
2015-01-25 22:22:23 +08:00
]
},
2015-01-25 02:18:54 +08:00
{
"cell_type": "code",
"collapsed": false,
"input": [
"datetime.strptime('20150120', '%Y%m%d')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
2015-01-25 02:29:58 +08:00
"prompt_number": 9,
2015-01-25 02:18:54 +08:00
"text": [
"datetime.datetime(2015, 1, 20, 0, 0)"
]
}
],
2015-01-25 02:29:58 +08:00
"prompt_number": 9
2015-01-25 02:18:54 +08:00
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## timedelta"
]
},
2015-01-25 22:22:23 +08:00
{
"cell_type": "markdown",
"metadata": {},
"source": [
2015-01-27 23:21:16 +08:00
"Get the current datetime:"
2015-01-25 22:22:23 +08:00
]
},
2015-01-25 02:18:54 +08:00
{
"cell_type": "code",
"collapsed": false,
"input": [
"dt_now = datetime.now()"
],
"language": "python",
"metadata": {},
"outputs": [],
2015-01-25 02:29:58 +08:00
"prompt_number": 10
2015-01-25 02:18:54 +08:00
},
2015-01-25 22:22:23 +08:00
{
"cell_type": "markdown",
"metadata": {},
"source": [
2015-01-27 23:21:16 +08:00
"Subtract two datetime fields to create a timedelta:"
2015-01-25 22:22:23 +08:00
]
},
2015-01-25 02:18:54 +08:00
{
"cell_type": "code",
"collapsed": false,
"input": [
"delta = dt_now - dt\n",
"delta"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
2015-01-25 02:29:58 +08:00
"prompt_number": 11,
2015-01-25 02:18:54 +08:00
"text": [
2015-01-27 23:21:16 +08:00
"datetime.timedelta(6, 40171, 885211)"
2015-01-25 02:18:54 +08:00
]
}
],
2015-01-25 02:29:58 +08:00
"prompt_number": 11
2015-01-25 02:18:54 +08:00
},
2015-01-25 22:22:23 +08:00
{
"cell_type": "markdown",
"metadata": {},
"source": [
2015-01-27 23:21:16 +08:00
"Add a datetime and a timedelta to get a new datetime:"
2015-01-25 22:22:23 +08:00
]
},
2015-01-25 02:18:54 +08:00
{
"cell_type": "code",
"collapsed": false,
"input": [
"dt + delta"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
2015-01-25 02:29:58 +08:00
"prompt_number": 12,
2015-01-25 02:18:54 +08:00
"text": [
2015-01-27 23:21:16 +08:00
"datetime.datetime(2015, 1, 26, 18, 37, 46, 885211)"
2015-01-25 02:18:54 +08:00
]
}
],
2015-01-25 02:29:58 +08:00
"prompt_number": 12
2015-01-25 02:18:54 +08:00
}
],
"metadata": {}
}
]
}