Python 如何将字符串转换为时间日期 datetime 格式
本篇文章来介绍 Python 如何将字符串 string
转换为 datetime
对象,随后列举出来代码例子来实现流行的时间格式的转化。
datetime.strptime()
将字符串转换为 datetime
在以前的教程中,我们介绍了使用 datetime.strftime()
方法将 datetime 转化为字符串。这里我们将用 datetime.strptime()
方法来实现逆转换。两种方法中的差别 f
和 p
分别对应着 format
(格式)和 parse
(解析)。
datetime.strptime()
按照给定的 datetime
格式来解析字符串,解析成功的话,返回 datetime
对象。
下面的例子是 datetime.strptime()
的简单使用例子。
from datetime import datetime
datetime.strptime("2018-01-31", "%Y-%m-%d")
它的返回结果是,
datetime.datetime(2018, 1, 31, 0, 0)
The directives of the string format codes are listed here for your reference
Directive | Meaning | Example |
---|---|---|
%a |
Weekday as locale’s abbreviated name. | Sun, Mon, …, Sat (en_US);So, Mo, …, Sa (de_DE) |
%A |
Weekday as locale’s full name. | Sunday, Monday, …, Saturday (en_US);Sonntag, Montag, …, Samstag (de_DE) |
%w |
Weekday as a decimal number, where 0 is Sunday and 6 is Saturday. | 0, 1, …, 6 |
%d |
Day of the month as a zero-padded decimal number. | 01, 02, …, 31 |
%b |
Month as locale’s abbreviated name. | Jan, Feb, …, Dec (en_US);Jan, Feb, …, Dez (de_DE) |
%B |
Month as locale’s full name. | January, February, …, December (en_US);Januar, Februar, …, Dezember (de_DE) |
%m |
Month as a zero-padded decimal number. | 01, 02, …, 12 |
%y |
Year without century as a zero-padded decimal number. | 00, 01, …, 99 |
%Y |
Year with century as a decimal number. | 0001, 0002, …, 2013, 2014, …, 9998, 9999 |
%H |
Hour (24-hour clock) as a zero-padded decimal number. | 00, 01, …, 23 |
%I |
Hour (12-hour clock) as a zero-padded decimal number. | 01, 02, …, 12 |
%p |
Locale’s equivalent of either AM or PM. | AM, PM (en_US);am, pm (de_DE) |
%M |
Minute as a zero-padded decimal number. | 00, 01, …, 59 |
%S |
Second as a zero-padded decimal number. | 00, 01, …, 59 |
%f |
Microsecond as a decimal number, zero-padded on the left. | 000000, 000001, …, 999999 |
%z |
UTC offset in the form ±HHMM[SS] (empty string if the object is naive). | (empty), +0000, -0400, +1030 |
%Z |
Time zone name (empty string if the object is naive). | (empty), UTC, EST, CST |
%j |
Day of the year as a zero-padded decimal number. | 001, 002, …, 366 |
%U |
Week number of the year (Sunday as the first day of the week) as a zero padded decimal number. All days in a new year preceding the first Sunday are considered to be in week 0. | 00, 01, …, 53 |
%W |
Week number of the year (Monday as the first day of the week) as a decimal number. All days in a new year preceding the first Monday are considered to be in week 0. | 00, 01, …, 53 |
%c |
Locale’s appropriate date and time representation. | Tue Aug 16 21:30:00 1988 (en_US);Di 16 Aug 21:30:00 1988 (de_DE) |
%x |
Locale’s appropriate date representation. | 08/16/88 (None);08/16/1988 (en_US);16.08.1988 (de_DE) |
%X |
Locale’s appropriate time representation. | 21:30:00 (en_US);21:30:00 (de_DE) |
%% |
A literal '%' character. |
% |
datetime.strptime()
举例
7-May-2013
格式
from datetime import datetime
dateString = "7-May-2018"
dateFormatter = "%u-%b-%Y"
datetime.strptime(dateString, dateFormatter)
输出:
datetime.datetime(2013, 5, 1, 0, 0)
31/12/2018
格式
from datetime import datetime
dateString = "31/12/2013"
dateFormatter = "%d/%m/%Y"
datetime.strptime(dateString, dateFormatter)
输出:
datetime.datetime(2013, 12, 31, 0, 0)
Mon, July 16 2018
格式
from datetime import datetime
dateString = "31/12/2013"
dateFormatter = "%d/%m/%Y"
datetime.strptime(dateString, dateFormatter)
输出:
datetime.datetime(2018, 7, 16, 0, 0)
Monday, July 16, 2018 20:01:56
格式
from datetime import datetime
dateString = "Monday, July 16, 2018 20:01:56"
dateFormatter = "%A, %B %d, %Y %H:%M:%S"
datetime.strptime(dateString, dateFormatter)
输出:
datetime.datetime(2018, 7, 16, 20, 1, 56)
相关文章
Python for 循环中的下一项
发布时间:2023/04/26 浏览次数:179 分类:Python
-
本文讨论了 Python 中的 for 循环以及如何通过使用 for 循环和示例来跳过列表的第一个元素。
Python While 循环用户输入
发布时间:2023/04/26 浏览次数:148 分类:Python
-
我们可以在 while 循环中使用 input() 函数来输入数据,直到在 Python 中满足某个条件。
在 Python 中将整数转换为罗马数字
发布时间:2023/04/26 浏览次数:87 分类:Python
-
本篇文章将介绍在 Python 中将整数转换为罗马数字。以下是一个 Python 程序的实现,它将给定的整数转换为其等效的罗马数字。
在 Python 中将罗马数字转换为整数
发布时间:2023/04/26 浏览次数:144 分类:Python
-
本文讨论如何在 Python 中将罗马数字转换为整数。 我们将使用 Python if 语句来执行此操作。 我们还将探讨在 Python 中将罗马数字更改为整数的更多方法。
在 Python 中读取 gzip 文件
发布时间:2023/04/26 浏览次数:70 分类:Python
-
本篇文章强调了压缩文件的重要性,并演示了如何在 Python 中使用 gzip 进行压缩和解压缩。
在 Python 中锁定文件
发布时间:2023/04/26 浏览次数:141 分类:Python
-
本文解释了为什么在 Python 中锁定文件很重要。 这讨论了当两个进程在没有锁的情况下与共享资源交互时会发生什么的示例,为什么在放置锁之前知道文件状态很重要,等等
在 Python 中将 PDF 转换为文本
发布时间:2023/04/26 浏览次数:196 分类:Python
-
在本教程中,我们将学习如何使用 Python 使用 PyPDF2、Aspose 和 PDFminer 将 PDF 文档转换为文本文件。
在 Python 中创建临时文件
发布时间:2023/04/26 浏览次数:53 分类:Python
-
本文讲解了tempfile库函数的四个子函数:TemporaryFile、NamedTemporaryFile、mkstemp、TemporaryDirectory。 每个部分都提供了适当的程序,以简化对概念的理解。