New-TimeSpan

创建 TimeSpan 对象。

语法

New-TimeSpan
   [[-Start] <DateTime>]
   [[-End] <DateTime>]
   [<CommonParameters>]
New-TimeSpan
   [-Days <Int32>]
   [-Hours <Int32>]
   [-Minutes <Int32>]
   [-Seconds <Int32>]
   [-Milliseconds <Int32>]
   [<CommonParameters>]

说明

cmdlet New-TimeSpan 创建表示时间间隔的 TimeSpan 对象。 可以使用 TimeSpan 对象在 DateTime 对象中加减时间。

如果没有参数, New-TimeSpan 命令将返回一个 TimeSpan 对象,该对象表示零的时间间隔。

示例

示例 1:创建指定持续时间的 TimeSpan 对象

此命令创建持续时间为 1 小时 25 分钟的 TimeSpan 对象,并将其存储在名为 的 $TimeSpan变量中。 它将显示 TimeSpan 对象的表示形式。

$TimeSpan = New-TimeSpan -Hours 1 -Minutes 25
$TimeSpan

Days              : 0
Hours             : 1
Minutes           : 25
Seconds           : 0
Milliseconds      : 0
Ticks             : 51000000000
TotalDays         : 0.0590277777777778
TotalHours        : 1.41666666666667
TotalMinutes      : 85
TotalSeconds      : 5100
TotalMilliseconds : 5100000

示例 2:创建时间间隔的 TimeSpan 对象

此示例将创建一个新的 TimeSpan 对象,用于表示从运行该命令到 2010 年 1 月 1 日之间的时间间隔。

此命令不需要 Start 参数,因为 Start 参数的默认值是当前日期和时间。

New-TimeSpan -End (Get-Date -Year 2010 -Month 1 -Day 1)

示例 3:获取从当前日期起 90 天的日期

$90days = New-TimeSpan -Days 90
(Get-Date) + $90days

这些命令将返回当前日期之后的 90 天的日期。

示例 4:发现自更新文件以后的 TimeSpan

此命令会告诉你自上次更新 about_remote 帮助文件以来已有多长时间。 可以在任何文件或任何其他具有 LastWriteTime 属性的对象上使用此命令格式。

此命令之所以有效,是因为 的 New-TimeSpanStart 参数具有 LastWriteTime 的别名。 将具有 LastWriteTime 属性的对象通过管道传递给 New-TimeSpan时,PowerShell 使用 LastWriteTime 属性的值作为 Start 参数的值。

Get-ChildItem $PSHOME\en-us\about_remote.help.txt | New-TimeSpan

Days              : 321
Hours             : 21
Minutes           : 59
Seconds           : 22
Milliseconds      : 312
Ticks             : 278135623127728
TotalDays         : 321.916230471907
TotalHours        : 7725.98953132578
TotalMinutes      : 463559.371879547
TotalSeconds      : 27813562.3127728
TotalMilliseconds : 27813562312.7728

参数

-Days

指定时间跨度(以天为单位)。 默认值为 0。

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-End

指定时间跨度的结束时间。 默认值为当前日期和时间。

Type:DateTime
Position:1
Default value:Current date and time
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Hours

指定时间跨度(以小时为单位)。 默认值为 0。

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Milliseconds

指定时间跨度的长度(以毫秒为单位)。 默认值为 0。

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Minutes

指定时间跨度(以分钟为单位)。 默认值为 0。

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Seconds

指定时间跨度的长度(以秒为单位)。 默认值为 0。

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Start

指定时间跨度的开始时间。 输入表示日期和时间的字符串,例如“3/15/09”或 DateTime 对象,例如命令中的 Get-Date 一个。 默认值为当前日期和时间。

可以使用 Start 或其别名 LastWriteTimeLastWriteTime 别名允许通过管道将具有 LastWriteTime 属性的对象(如文件系统 [System.Io.FileIO]中的文件)传递给 的 New-TimeSpanStart 参数。

Type:DateTime
Aliases:LastWriteTime
Position:0
Default value:Current date and time
Required:False
Accept pipeline input:True
Accept wildcard characters:False

输入

DateTime

可以通过管道将表示开始时间的 DateTime 对象传递给此 cmdlet。

输出

TimeSpan

此 cmdlet 返回表示时间跨度的 对象。