Python Data Science 简明教程

Python - Date and Time

在数据科学中,我们经常需要对基于时间值的数据进行分析。Python 可以轻松处理日期和时间的各种格式。“ datetime ” 库提供了处理以下情况所需的方法和函数。

Often in data science we need analysis which is based on temporal values. Python can handle the various formats of date and time gracefully. The datetime library provides necessary methods and functions to handle the following scenarios.

  1. Date Time Representation

  2. Date Time Arithmetic

  3. Date Time Comparison

我们将逐一学习这些方法。

We will study them one by one.

Date Time Representation

日期及其各个部分通过不同的 datetime 函数表示。还有格式说明符,在显示日期的字母部分(例如月份或星期几的名称)时起作用。以下代码显示了今天的日期和日期的不同部分。

A date and its various parts are represented by using different datetime functions. Also, there are format specifiers which play a role in displaying the alphabetical parts of a date like name of the month or week day. The following code shows today’s date and various parts of the date.

import datetime

print 'The Date Today is  :', datetime.datetime.today()

date_today = datetime.date.today()
print date_today
print 'This Year   :', date_today.year
print 'This Month    :', date_today.month
print 'Month Name:',date_today.strftime('%B')
print 'This Week Day    :', date_today.day
print 'Week Day Name:',date_today.strftime('%A')

当我们执行上面的代码时,它会产生以下结果。

When we execute the above code, it produces the following result.

The Date Today is  : 2018-04-22 15:38:35.835000
2018-04-22
This Year   : 2018
This Month    : 4
Month Name: April
This Week Day    : 22
Week Day Name: Sunday

Date Time Arithmetic

对于涉及日期的计算,我们将不同的日期存储到变量中,并对这些变量应用相关的数学运算符。

For calculations involving dates we store the various dates into variables and apply the relevant mathematical operator to these variables.

import datetime

#Capture the First Date
day1 = datetime.date(2018, 2, 12)
print 'day1:', day1.ctime()

# Capture the Second Date
day2 = datetime.date(2017, 8, 18)
print 'day2:', day2.ctime()

# Find the difference between the dates
print 'Number of Days:', day1-day2


date_today  = datetime.date.today()

# Create a delta of Four Days
no_of_days = datetime.timedelta(days=4)

# Use Delta for Past Date
before_four_days = date_today - no_of_days
print 'Before Four Days:', before_four_days

# Use Delta for future Date
after_four_days = date_today + no_of_days
print 'After Four Days:', after_four_days

当我们执行上面的代码时,它会产生以下结果。

When we execute the above code, it produces the following result.

day1: Mon Feb 12 00:00:00 2018
day2: Fri Aug 18 00:00:00 2017
Number of Days: 178 days, 0:00:00
Before Four Days: 2018-04-18
After Four Days: 2018-04-26

Date Time Comparison

日期和时间使用逻辑运算符进行比较。但我们必须小心比较日期的正确部分。在下面的示例中,我们取未来和过去日期,并使用 python if 子句和逻辑运算符对它们进行比较。

Date and time are compared using logical operators. But we must be careful in comparing the right parts of the dates with each other. In the below examples we take the future and past dates and compare them using the python if clause along with logical operators.

import datetime

date_today  = datetime.date.today()

print 'Today is: ', date_today
# Create a delta of Four Days
no_of_days = datetime.timedelta(days=4)

# Use Delta for Past Date
before_four_days = date_today - no_of_days
print 'Before Four Days:', before_four_days

after_four_days =  date_today + no_of_days

date1 = datetime.date(2018,4,4)

print 'date1:',date1

if date1 == before_four_days :
    print 'Same Dates'
if date_today > date1:
    print 'Past Date'
if date1 < after_four_days:
    print 'Future Date'

当我们执行上面的代码时,它会产生以下结果。

When we execute the above code, it produces the following result.

Today is:  2018-04-22
Before Four Days: 2018-04-18
date1: 2018-04-04
Past Date
Future Date