如何管理日期和时间

如何在Excel中存储日期和时间

日期和时间以数字形式存储在单元格中。因此,包含日期和时间的单元格的值属于数字类型。指定日期和时间的数字由日期(整数部分)和时间(小数部分)组成。Cell.DoubleValue属性返回此数字。

如何在Aspose.Cells中显示日期和时间

要将数字显示为日期和时间,请通过Style.numberStyle.Custom属性为单元格应用所需的日期和时间格式。CellValue.DateTimeValue属性返回DateTime对象,指定由单元格中的数字表示的日期和时间。

如何在Aspose.Cells中切换两个日期系统

MS-Excel 将日期存储为称为序列值的数字。 序列值是从日期系统中的第一天经过的天数,它是一个整数。 Excel 支持以下日期系统的序列值:

  1. 1900 年日期系统。 第一个日期是 1900 年 1 月 1 日,其序列值为 1。 最后一个日期是 9999 年 12 月 31 日,其序列值为 2,958,465。 此日期系统默认用于工作簿。
  2. 1904日期系统。第一个日期是1904年1月1日,其序列值为0。最后一个日期是9999年12月31日,其序列值为2,957,003。如要在工作簿中使用此日期系统,请将Workbook.settings.date1904属性设置为true。

此示例显示了在不同日期系统中存储的相同日期的序列值不同。

from aspose.cells import CellValueType, Workbook
from datetime import datetime
# Instantiating an Workbook object
workbook = Workbook()
workbook.settings.date1904 = False
# Obtaining the reference of the newly added worksheet
ws = workbook.worksheets[0]
cells = ws.cells
dateData = datetime(2023, 11, 23)
# Setting the DateTime value to the cells
a1 = cells.get("A1")
a1.put_value(dateData)
# Check if the cell contains a numeric value
if a1.type == CellValueType.IS_NUMERIC:
print("A1 is Numeric Value: " + str(a1.double_value))
workbook.settings.date1904 = True
print("use The 1904 date system====================")
# Setting the DateTime value to the cells
a2 = cells.get("A2")
a2.value = dateData
# Check if the cell contains a numeric value
if a2.type == CellValueType.IS_NUMERIC:
print("A2 is Numeric Value: " + str(a2.double_value))
输出结果:

A1 is Numeric Value: 45253
use The 1904 date system====================
A2 is Numeric Value: 43791

如何在 Aspose.Cells 中设置 DateTime 值

此示例在单元格 A1 和 A2 中设置 DateTime 值,设置 A1 的自定义格式和 A2 的数字格式,然后输出值类型。

from aspose.cells import CellValueType, Workbook
from datetime import datetime
# Instantiating an Workbook object
workbook = Workbook()
# Obtaining the reference of the newly added worksheet
ws = workbook.worksheets[0]
cells = ws.cells
# Setting the DateTime value to the cells
a1 = cells.get("A1")
a1.put_value(datetime.now())
# Check if the cell contains a numeric value
if a1.type == CellValueType.IS_NUMERIC:
print("A1 is Numeric Value: " + str(a1.is_numeric_value))
a1Style = a1.get_style()
# Set custom Datetime style
a1Style.custom = "mm-dd-yy hh:mm:ss"
a1.set_style(a1Style)
# Check if the cell contains a DateTime value
if a1.type == CellValueType.IS_DATE_TIME:
print("Cell A1 contains a DateTime value.")
else:
print("Cell A1 does not contain a DateTime value.")
# Setting the DateTime value to the cells
a2 = cells.get("A2")
a2.value = datetime.now()
# Check if the cell contains a numeric value
if a2.type == CellValueType.IS_NUMERIC:
print("A2 is Numeric Value: " + str(a2.is_numeric_value))
a2Style = a2.get_style()
# Set the display format of numbers and dates.
a2Style.number = 22
a2.set_style(a2Style)
# Check if the cell contains a DateTime value
if a2.type == CellValueType.IS_DATE_TIME:
print("Cell A2 contains a DateTime value.")
else:
print("Cell A2 does not contain a DateTime value.")

输出结果:

A1 is Numeric Value: True
Cell A1 contains a DateTime value.
A2 is Numeric Value: True
Cell A2 contains a DateTime value.

如何在 Aspose.Cells 中获取 DateTime 值

此示例在单元格 A1 和 A2 中设置 DateTime 值,设置 A1 的自定义格式和 A2 的数字格式,检查两个单元格的值类型,然后输出 DateTime 值和格式化字符串。

from aspose.cells import CellValueType, Workbook
from datetime import datetime
# Instantiating an Workbook object
workbook = Workbook()
# Obtaining the reference of the newly added worksheet
ws = workbook.worksheets[0]
cells = ws.cells
# Setting the DateTime value to the cells
a1 = cells.get("A1")
a1.put_value(datetime.now())
# Check if the cell contains a numeric value
if a1.type == CellValueType.IS_NUMERIC:
print("A1 is Numeric Value: " + str(a1.is_numeric_value))
a1Style = a1.get_style()
# Set custom Datetime style
a1Style.custom = "mm-dd-yy hh:mm:ss"
a1.set_style(a1Style)
# Check if the cell contains a DateTime value
if a1.type == CellValueType.IS_DATE_TIME:
print("Cell A1 contains a DateTime value.")
# Get the DateTime value
dateTimeValue = a1.date_time_value
# Now, you can use dateTimeValue as needed
print("A1 DateTime Value: " + str(dateTimeValue))
# Output date formatted string
print("A1 DateTime String Value: " + a1.string_value)
else:
print("Cell A1 does not contain a DateTime value.")
# Setting the DateTime value to the cells
a2 = cells.get("A2")
a2.value = datetime.now()
# Check if the cell contains a numeric value
if a2.type == CellValueType.IS_NUMERIC:
print("A2 is Numeric Value: " + str(a2.is_numeric_value))
a2Style = a2.get_style()
# Set the display format of numbers and dates.
a2Style.number = 22
a2.set_style(a2Style)
# Check if the cell contains a DateTime value
if a2.type == CellValueType.IS_DATE_TIME:
print("Cell A2 contains a DateTime value.")
# Get the DateTime value
dateTimeValue = a2.date_time_value
# Now, you can use dateTimeValue as needed
print("A2 DateTime Value: " + str(dateTimeValue))
# Output date formatted string
print("A2 DateTime String Value: " + a2.string_value)
else:
print("Cell A2 does not contain a DateTime value.")

输出结果:

A1 is Numeric Value: True
Cell A1 contains a DateTime value.
A1 DateTime Value: 11/23/2023 5:59:09 PM
A1 DateTime String Value: 11-23-23 17:59:09
A2 is Numeric Value: True
Cell A2 contains a DateTime value.
A2 DateTime Value: 11/23/2023 5:59:09 PM
A2 DateTime String Value: 11/23/2023 17:59