在本文中,您将学习如何将日期,时间和日期时间对象转换为其等效的字符串(借助示例)
strftime()
方法使用日期,时间或 datetime 对象返回表示日期和时间的字符串。
示例 1:使用strftime()
将日期时间转换为字符串
下面的程序将包含当前日期和时间的datetime
对象转换为不同的字符串格式。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<span class="pl-k">from</span> <span class="pl-s1">datetime</span> <span class="pl-k">import</span> <span class="pl-s1">datetime</span> <span class="pl-s1">now</span> <span class="pl-c1">=</span> <span class="pl-s1">datetime</span>.<span class="pl-en">now</span>() <span class="pl-c"># current date and time</span> <span class="pl-s1">year</span> <span class="pl-c1">=</span> <span class="pl-s1">now</span>.<span class="pl-en">strftime</span>(<span class="pl-s">"%Y"</span>) <span class="pl-en">print</span>(<span class="pl-s">"year:"</span>, <span class="pl-s1">year</span>) <span class="pl-s1">month</span> <span class="pl-c1">=</span> <span class="pl-s1">now</span>.<span class="pl-en">strftime</span>(<span class="pl-s">"%m"</span>) <span class="pl-en">print</span>(<span class="pl-s">"month:"</span>, <span class="pl-s1">month</span>) <span class="pl-s1">day</span> <span class="pl-c1">=</span> <span class="pl-s1">now</span>.<span class="pl-en">strftime</span>(<span class="pl-s">"%d"</span>) <span class="pl-en">print</span>(<span class="pl-s">"day:"</span>, <span class="pl-s1">day</span>) <span class="pl-s1">time</span> <span class="pl-c1">=</span> <span class="pl-s1">now</span>.<span class="pl-en">strftime</span>(<span class="pl-s">"%H:%M:%S"</span>) <span class="pl-en">print</span>(<span class="pl-s">"time:"</span>, <span class="pl-s1">time</span>) <span class="pl-s1">date_time</span> <span class="pl-c1">=</span> <span class="pl-s1">now</span>.<span class="pl-en">strftime</span>(<span class="pl-s">"%m/%d/%Y, %H:%M:%S"</span>) <span class="pl-en">print</span>(<span class="pl-s">"date and time:"</span>,<span class="pl-s1">date_time</span>) |
运行程序时,输出将如下所示:
1 2 3 4 5 |
<span class="pl-s1">year</span>: <span class="pl-c1">2018</span> <span class="pl-s1">month</span>: <span class="pl-c1">12</span> <span class="pl-s1">day</span>: <span class="pl-c1">24</span> <span class="pl-s1">time</span>: <span class="pl-c1">04</span>:<span class="pl-c1">59</span>:<span class="pl-c1">31</span> <span class="pl-s1">date</span> <span class="pl-c1">and</span> <span class="pl-s1">time</span>: <span class="pl-c1">12</span><span class="pl-c1">/</span><span class="pl-c1">24</span><span class="pl-c1">/</span><span class="pl-c1">2018</span>, <span class="pl-c1">04</span>:<span class="pl-c1">59</span>:<span class="pl-c1">31</span> |
这里,year
,day
,time
和date_time
是字符串,而now
是datetime
对象。
strftime()
如何工作?
在上述程序中,%Y
,%m
,%d
等是格式代码。strftime()
方法采用一个或多个格式代码作为参数,并基于该代码返回格式化的字符串。
-
我们从
datetime
模块导入了datetime
类。 这是因为datetime
类的对象可以访问strftime()
方法。 -
包含当前日期和时间的
datetime
对象存储在now
变量中。 -
strftime()
方法可用于创建格式化的字符串。 -
您传递给
strftime()
方法的字符串可能包含多个格式代码。
示例 2:根据时间戳创建字符串
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<span class="pl-k">from</span> <span class="pl-s1">datetime</span> <span class="pl-k">import</span> <span class="pl-s1">datetime</span> <span class="pl-s1">timestamp</span> <span class="pl-c1">=</span> <span class="pl-c1">1528797322</span> <span class="pl-s1">date_time</span> <span class="pl-c1">=</span> <span class="pl-s1">datetime</span>.<span class="pl-en">fromtimestamp</span>(<span class="pl-s1">timestamp</span>) <span class="pl-en">print</span>(<span class="pl-s">"Date time object:"</span>, <span class="pl-s1">date_time</span>) <span class="pl-s1">d</span> <span class="pl-c1">=</span> <span class="pl-s1">date_time</span>.<span class="pl-en">strftime</span>(<span class="pl-s">"%m/%d/%Y, %H:%M:%S"</span>) <span class="pl-en">print</span>(<span class="pl-s">"Output 2:"</span>, <span class="pl-s1">d</span>) <span class="pl-s1">d</span> <span class="pl-c1">=</span> <span class="pl-s1">date_time</span>.<span class="pl-en">strftime</span>(<span class="pl-s">"%d %b, %Y"</span>) <span class="pl-en">print</span>(<span class="pl-s">"Output 3:"</span>, <span class="pl-s1">d</span>) <span class="pl-s1">d</span> <span class="pl-c1">=</span> <span class="pl-s1">date_time</span>.<span class="pl-en">strftime</span>(<span class="pl-s">"%d %B, %Y"</span>) <span class="pl-en">print</span>(<span class="pl-s">"Output 4:"</span>, <span class="pl-s1">d</span>) <span class="pl-s1">d</span> <span class="pl-c1">=</span> <span class="pl-s1">date_time</span>.<span class="pl-en">strftime</span>(<span class="pl-s">"%I%p"</span>) <span class="pl-en">print</span>(<span class="pl-s">"Output 5:"</span>, <span class="pl-s1">d</span>) |
运行该程序时,输出为:
1 2 3 4 5 |
<span class="pl-v">Date</span> <span class="pl-s1">time</span> <span class="pl-s1">object</span>: <span class="pl-c1">2018</span><span class="pl-c1">-</span><span class="pl-c1">06</span><span class="pl-c1">-</span><span class="pl-c1">12</span> <span class="pl-c1">09</span>:<span class="pl-c1">55</span>:<span class="pl-c1">22</span> <span class="pl-v">Output</span> <span class="pl-c1">2</span>: <span class="pl-c1">06</span><span class="pl-c1">/</span><span class="pl-c1">12</span><span class="pl-c1">/</span><span class="pl-c1">2018</span>, <span class="pl-c1">09</span>:<span class="pl-c1">55</span>:<span class="pl-c1">22</span> <span class="pl-v">Output</span> <span class="pl-c1">3</span>: <span class="pl-c1">12</span> <span class="pl-v">Jun</span>, <span class="pl-c1">2018</span> <span class="pl-v">Output</span> <span class="pl-c1">4</span>: <span class="pl-c1">12</span> <span class="pl-v">June</span>, <span class="pl-c1">2018</span> <span class="pl-v">Output</span> <span class="pl-c1">5</span>: <span class="pl-c1">09</span><span class="pl-v">AM</span> |
格式代码列表
下表显示了您可以传递给strftime()
方法的所有代码。
指令 | 含义 | 示例 |
---|---|---|
%a |
缩写的工作日名称。 | Sun, Mon, ... |
%A |
完整的工作日名称。 | Sunday, Monday, ... |
%w |
工作日,表示为十进制数字。 | 0, 1, ..., 6 |
%d |
月份中的一天,表示为以零填充的十进制数。 | 01, 02, ..., 31 |
%-d |
月份中的一天,表示为无填充的十进制数字。 | 1, 2, ..., 30 |
%b |
缩写的月份名称。 | Jan, Feb, ..., Dec |
%B |
完整的月份名称。 | January, February, ... |
%m |
月份,表示为以零填充的十进制数字。 | 01, 02, ..., 12 |
%-m |
月份,表示为无填充的十进制数。 | 1, 2, ..., 12 |
%y |
没有世纪的年份,表示为以零填充的十进制数字。 | 00, 01, ..., 99 |
%-y |
没有世纪的年份,表示为无填充的十进制数字。 | 0, 1, ..., 99 |
%Y |
带世纪的年份,表示为十进制数字。 | 2013, 2019, ... |
%H |
小时(24 小时制),表示为以零填充的十进制数字。 | 00, 01, ..., 23 |
%-H |
小时(24 小时制),表示为无填充的十进制数字。 | 0, 1, ..., 23 |
%I |
小时(12 小时制),表示为以零填充的十进制数字。 | 01, 02, ..., 12 |
%-I |
小时(12 小时制),表示为无填充的十进制数字。 | 1, 2, ... 12 |
%p |
语言环境的上午或下午。 | AM, PM |
%M |
分钟,表示为以零填充的十进制数字。 | 00, 01, ..., 59 |
%-M |
分钟,表示为无填充的十进制数字。 | 0, 1, ..., 59 |
%S |
秒钟,表示为以零填充的十进制数字。 | 00, 01, ..., 59 |
%-S |
秒钟,表示为无填充的十进制数字。 | 0, 1, ..., 59 |
%f |
微秒,表示为以零填充的十进制数。 | 000000 - 999999 |
%z |
UTC 偏移量,格式为+HHMM 或-HHMM 。 |
|
%Z |
时区名称。 | |
%j |
一年中的一天,表示为以零填充的十进制数字。 | 001, 002, ..., 366 |
%-j |
一年中的一天,表示为无填充的十进制数字。 | 1, 2, ..., 366 |
%U |
一年中的星期(星期日为一周的第一天)。 新年中第一个星期日之前的所有天都视为第 0 周。 | 00, 01, ..., 53 |
%W |
一年中的星期(星期一为一周的第一天)。 新年中第一个星期一之前的所有天都视为第 0 周。 | 00, 01, ..., 53 |
%c |
适合语言环境的日期和时间表示。 | Mon Sep 30 07:06:05 2013 |
%x |
适合语言环境的日期表示形式。 | 09/30/13 |
%X |
适合语言环境的时间表示形式。 | 07:06:05 |
%% |
字面值% 字符。 |
% |
示例 3:语言环境的适当日期和时间
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<span class="pl-k">from</span> <span class="pl-s1">datetime</span> <span class="pl-k">import</span> <span class="pl-s1">datetime</span> <span class="pl-s1">timestamp</span> <span class="pl-c1">=</span> <span class="pl-c1">1528797322</span> <span class="pl-s1">date_time</span> <span class="pl-c1">=</span> <span class="pl-s1">datetime</span>.<span class="pl-en">fromtimestamp</span>(<span class="pl-s1">timestamp</span>) <span class="pl-s1">d</span> <span class="pl-c1">=</span> <span class="pl-s1">date_time</span>.<span class="pl-en">strftime</span>(<span class="pl-s">"%c"</span>) <span class="pl-en">print</span>(<span class="pl-s">"Output 1:"</span>, <span class="pl-s1">d</span>) <span class="pl-s1">d</span> <span class="pl-c1">=</span> <span class="pl-s1">date_time</span>.<span class="pl-en">strftime</span>(<span class="pl-s">"%x"</span>) <span class="pl-en">print</span>(<span class="pl-s">"Output 2:"</span>, <span class="pl-s1">d</span>) <span class="pl-s1">d</span> <span class="pl-c1">=</span> <span class="pl-s1">date_time</span>.<span class="pl-en">strftime</span>(<span class="pl-s">"%X"</span>) <span class="pl-en">print</span>(<span class="pl-s">"Output 3:"</span>, <span class="pl-s1">d</span>) |
当你运行程序时,输出将是:
1 2 3 |
<span class="pl-v">Output</span> <span class="pl-c1">1</span>: <span class="pl-v">Tue</span> <span class="pl-v">Jun</span> <span class="pl-c1">12</span> <span class="pl-c1">09</span>:<span class="pl-c1">55</span>:<span class="pl-c1">22</span> <span class="pl-c1">2018</span> <span class="pl-v">Output</span> <span class="pl-c1">2</span>: <span class="pl-c1">06</span><span class="pl-c1">/</span><span class="pl-c1">12</span><span class="pl-c1">/</span><span class="pl-c1">18</span> <span class="pl-v">Output</span> <span class="pl-c1">3</span>: <span class="pl-c1">09</span>:<span class="pl-c1">55</span>:<span class="pl-c1">22</span> |
格式代码%c
,%x
和%X
用于语言环境的适当日期和时间表示。
我们还建议您检查 Python strptime()
。strptime()
方法从字符串创建datetime
对象。
除教程外,本网站大部分文章来自互联网,如果有内容冒犯到你,请联系我们删除!