📜  在Python中格式化日期

📅  最后修改于: 2022-05-13 01:54:32.048000             🧑  作者: Mango

在Python中格式化日期

在世界的不同地区,使用了不同类型的日期格式,因此,编程语言通常会提供多种日期格式供开发人员处理。在Python中,它是通过使用称为datetime的自由来处理的。它由可用于处理数据和时间值的类和方法组成。

要使用它,首先通过以下方式导入日期时间库:

import datetime

我们可以在日期时间中有以下组件:

  • 时间班

    时间值可以使用时间类来表示。时间类的属性包括小时、分钟、秒和微秒。一个时间示例如下:

    句法:

    time(hour, minute, second, microsecond)
    

    例子:

    import datetime
      
      
    tm = datetime.time(2, 25, 50, 13)
    print(tm)
    

    输出

    02:25:50.000013
    

    时间属性有范围,即秒的范围在 0 到 59 之间,纳秒的范围在 0 到 999999 之间。如果超出范围,编译器会显示ValueError

    时间类的实例由小时、分钟、秒和微秒三个实例属性组成。这些用于获取有关时间的特定信息。

    例子:

    import datetime
      
      
    tm = datetime.time(1, 50, 20, 133257)
      
    print('Time tm is ',
          tm.hour, ' hours ',
          tm.minute, ' minutes ',
          tm.second, ' seconds and ',
          tm.microsecond, ' microseconds' )
    

    输出

  • 日期类

    日历日期的值可以通过日期类表示。日期实例由年、月和日的属性组成。

    句法:

    date(yyyy, mm, dd)
    

    例子:

    import datetime
      
      
    date = datetime.date(2018, 5, 12)
    print('Date date is ', date.day,
          ' day of ', date.month,
          ' of the year ', date.year)
    

    输出

    Date date is  12  day of  5  of the year  2018
    

    为了获取今天的日期名称,使用了一个名为today()的方法,并使用了ctime()方法来获取一个对象中的所有信息(今天的信息)。

    例子:

    import datetime
      
      
    tday = datetime.date.today()
    daytoday = tday.ctime()
      
    print("The date today is ", tday)
    print("The date info. is ", daytoday)
    

    输出

    The date today is  2020-01-30
    The date info. is  Thu Jan 30 00:00:00 2020
    

将日期转换为字符串

日期和时间与字符串不同,因此很多时候将日期时间转换为字符串很重要。为此,我们使用strftime()方法。

句法:

time.strftime(format, t)

参数:

  • 格式——这是字符串类型。即指令可以嵌入到格式字符串中。
  • t——要格式化的时间。

例子:

import datetime
  
  
x = datetime.datetime(2018, 5, 12, 2, 25, 50, 13)
  
print(x.strftime("%b %d %Y %H:%M:%S"))

输出

May 12 2018 02:25:50

通过设置print()方法,同样的例子也可以写成不同的地方。

import datetime
  
  
x = datetime.datetime(2018, 5, 12, 2, 25, 50, 13)
  
print(x.strftime("%H:%M:%S %b %d %Y"))

输出

02:25:50 May 12 2018 

%H、%M 和 %S 分别显示小时、分钟和秒。 %b、%d 和 %Y 分别显示月、日、年 3 个字符。

除了上面的例子之外,常用的字符代码列表及其功能还有:

  • %a:显示工作日的三个字符,例如 Wed。
    import datetime
      
      
    x = datetime.datetime(2018, 5, 12, 2, 25, 50, 13)
    print(x.strftime("%a"))
    

    输出

    Sat
    
  • %A:显示工作日的名称,例如星期三。
    import datetime
      
      
    x = datetime.datetime(2018, 5, 12, 2, 25, 50, 13)
    print(x.strftime("%A"))
    

    输出

    Saturday
    
  • %B:显示月份,例如五月。
    import datetime
      
      
    x = datetime.datetime(2018, 5, 12, 2, 25, 50, 13)
    print(x.strftime("%B"))
    

    输出

    May
    
  • %w:将工作日显示为数字,从 0 到 6,其中星期日为 0。
    import datetime
      
      
    x = datetime.datetime(2018, 5, 12, 2, 25, 50, 13)
    print(x.strftime("%w"))
    

    输出

    6
    
  • %m:将月份显示为数字,从 01 到 12。
    import datetime
      
      
    x = datetime.datetime(2018, 5, 12, 2, 25, 50, 13)
    print(x.strftime("%m"))
    

    输出

    5
    
  • %p:为时间定义 AM/PM。
    import datetime
      
      
    x = datetime.datetime(2018, 5, 12, 2, 25, 50, 13)
    print(x.strftime("%p"))
    

    输出

    PM
    
  • %y:以两位数格式显示年份,即“20”代替“2020”。
    import datetime
      
      
    x = datetime.datetime(2018, 5, 12, 2, 25, 50, 13)
    print(x.strftime("% y"))
    

    输出

    18
    
  • %f:显示从 000000 到 999999 的微秒。
    import datetime
      
      
    x = datetime.datetime(2018, 5, 12, 2, 25, 50, 13)
    print(x.strftime("% f"))
    

    输出

    000013
    
  • %j:显示一年中的第几天,从 001 到 366。
    import datetime
      
      
    x = datetime.datetime(2018, 5, 12, 2, 25, 50, 13)
    print(x.strftime("%f"))
    

    输出

    132
    

从字符串到日期的转换

在处理从 csv 导入的数据集或从网站表单获取输入时,需要多次将字符串转换为日期。为此, Python提供了一个名为strptime()的方法。

句法:

datetime.strptime(string, format)

参数:

  • 字符串 –输入字符串。
  • 格式——这是字符串类型。即指令可以嵌入到格式字符串中。

例子:

from datetime import datetime
  
  
print(datetime.strptime('5/5/2019',
                        '%d/%m/%Y'))

输出

2019-05-05 00:00:00