New-TimeSpan

创建 TimeSpan 对象。

语法

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

说明

New-TimeSpan cmdlet 创建表示时间间隔的 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-TimeSpan 的 Start 参数具有别名 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 或其别名 LastWriteTime。 借助 LastWriteTime 别名,可以通过管道将具有 LastWriteTime 属性的对象(例如文件系统 [System.Io.FileIO] 中的文件)传递给 New-TimeSpan 的 Start 参数。

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 返回一个表示时间范围的对象。