{ "cells": [ { "cell_type": "markdown", "id": "c050689b", "metadata": {}, "source": [ "# 模块datetime:日期时间" ] }, { "cell_type": "code", "execution_count": 1, "id": "0053c459", "metadata": {}, "outputs": [], "source": [ "import datetime as dt" ] }, { "cell_type": "markdown", "id": "c9a9f6c3", "metadata": {}, "source": [ "## 日期date对象" ] }, { "attachments": {}, "cell_type": "markdown", "id": "0bb585c3", "metadata": {}, "source": [ "产生一个有年月日信息的date对象:" ] }, { "cell_type": "code", "execution_count": 2, "id": "106ccc5c", "metadata": {}, "outputs": [], "source": [ "d1 = dt.date(2007, 9, 25)" ] }, { "cell_type": "code", "execution_count": 3, "id": "19feda31", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "datetime.date(2007, 9, 25)" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d1" ] }, { "cell_type": "code", "execution_count": 4, "id": "c1b10bdb", "metadata": {}, "outputs": [], "source": [ "d2 = dt.date(2008, 9, 25)" ] }, { "attachments": {}, "cell_type": "markdown", "id": "21af4e09", "metadata": {}, "source": [ "分别表示2008年9月25日和2007年9月25日。日期可以打印出来:" ] }, { "cell_type": "code", "execution_count": 5, "id": "2c2fdf1b", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2007-09-25\n" ] } ], "source": [ "print(d1)" ] }, { "attachments": {}, "cell_type": "markdown", "id": "2d464813", "metadata": {}, "source": [ "还可以调用date对象的`.strftime()`方法将日期转化为特定格式:" ] }, { "cell_type": "code", "execution_count": 6, "id": "451adeb3", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'Tuesday, 09/25/07'" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d1.strftime('%A, %m/%d/%y')" ] }, { "cell_type": "code", "execution_count": 7, "id": "f2fefa1c", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'Tue, 09-25-2007'" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d1.strftime('%a, %m-%d-%Y')" ] }, { "attachments": {}, "cell_type": "markdown", "id": "82b172ba", "metadata": {}, "source": [ "## 时间间隔timedelta对象\n", "\n", "两个日期可以相减:" ] }, { "cell_type": "code", "execution_count": 8, "id": "ae670df1", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "datetime.timedelta(days=366)" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d2 - d1" ] }, { "attachments": {}, "cell_type": "markdown", "id": "e7f004af", "metadata": {}, "source": [ "## 时间time对象\n", "\n", "产生两个时间对象:" ] }, { "cell_type": "code", "execution_count": 9, "id": "1adbc112", "metadata": {}, "outputs": [], "source": [ "t1 = dt.time(15, 38)" ] }, { "cell_type": "code", "execution_count": 10, "id": "53e0a156", "metadata": {}, "outputs": [], "source": [ "t2 = dt.time(18)" ] }, { "cell_type": "markdown", "id": "940efbcb", "metadata": {}, "source": [ "分别表示15点38分和18点整:" ] }, { "cell_type": "code", "execution_count": 11, "id": "a3ee04e3", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "15:38:00\n" ] } ], "source": [ "print(t1)" ] }, { "cell_type": "code", "execution_count": 12, "id": "ea5b9e8a", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "datetime.time(18, 0)" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "t2" ] }, { "attachments": {}, "cell_type": "markdown", "id": "c491dfcd", "metadata": {}, "source": [ "输出格式同样可以用`.strftime()`方法改变:" ] }, { "cell_type": "code", "execution_count": 13, "id": "be2d1c77", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'15:38:00, PM'" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "t1.strftime('%H:%M:%S, %p')" ] }, { "cell_type": "markdown", "id": "29fc6da4", "metadata": {}, "source": [ "## 日期时间datetime对象" ] }, { "cell_type": "markdown", "id": "4b75a312", "metadata": {}, "source": [ "同时带日期与时间的对象:" ] }, { "cell_type": "code", "execution_count": 14, "id": "e7d1a89b", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "datetime.datetime(2022, 3, 7, 2, 49, 39)" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dt.datetime(2022, 3, 7, 2, 49, 39)" ] }, { "cell_type": "code", "execution_count": 15, "id": "5035b281", "metadata": {}, "outputs": [], "source": [ "d1 = dt.datetime.now()" ] }, { "cell_type": "code", "execution_count": 16, "id": "5214063e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2022-05-02 21:05:26.567396\n" ] } ], "source": [ "print(d1)" ] }, { "attachments": {}, "cell_type": "markdown", "id": "0f70d307", "metadata": {}, "source": [ "date和datetime对象都支持减法;此外,它们还支持与timedelta对象的加法。例如,将当前时间加上30天:" ] }, { "cell_type": "code", "execution_count": 17, "id": "2abb97bd", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2022-06-01 21:05:26.567396\n" ] } ], "source": [ "print(d1 + dt.timedelta(30))" ] }, { "attachments": {}, "cell_type": "markdown", "id": "66c0dc07", "metadata": {}, "source": [ "## 日期格式\n", "\n", "字符\t| 含义\n", "-- | --\n", "%a\t | 星期英文缩写\n", "%A\t | 星期英文\n", "%w\t | 一星期的第几天,[0(sun),6]\n", "%b\t | 月份英文缩写\n", "%B\t | 月份英文\n", "%d\t | 日期,[01,31]\n", "%H\t | 小时,[00,23]\n", "%I\t | 小时,[01,12]\n", "%j\t | 一年的第几天,[001,366]\n", "%m\t | 月份,[01,12]\n", "%M\t | 分钟,[00,59]\n", "%p\t | AM 和PM\n", "%S\t | 秒钟,[00,61] \n", "%U\t | 一年中的第几个星期,星期日为第一天,[00,53]\n", "%W\t | 一年中的第几个星期,星期一为第一天,[00,53]\n", "%y\t | 没有世纪的年份\n", "%Y\t | 完整的年份\n" ] }, { "cell_type": "code", "execution_count": null, "id": "7e429711", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.10" } }, "nbformat": 4, "nbformat_minor": 5 }