我似乎无法在StackOverflow或网络上的其他地方找到有关此标志的任何信息。 Apple自己的文档只说:
如果将格式化程序设置为宽松,则在解析字符串时,它会使用启发式方法来猜测预期的日期。与任何猜测一样,它可能会使结果日期错误(即,除了预期的日期之外的日期)。
也许我误解了这应该如何运作,但我根本无法让它发挥作用。我的猜测是这样的(有一个相对容易解析的日期):
> import Foundation
> let df = DateFormatter()
> df.isLenient = true
> df.date(from: "12:00 1/1/2001")
$R0: Date? = nil
无论我尝试什么,我都没有。
我也看到了doesRelativeDateFormatting
标志,声称支持“今天”和“明天”这样的短语",但这似乎没有做任何事情,要么:
> df.doesRelativeDateFormatting = true
> df.date(from: "today")
$R1: Date? = nil
有什么想法吗?
答案 0 :(得分:2)
以下是宽松选项产生影响的示例:
$Server
2015年不是闰年,因此没有2月29日
cls
Remove-Variable server
function ssssss
{
param
(
[string][parameter(Mandatory = $true)]$server
)
Write-Host $server
}
ssssss -server "Enter servername here"
,日期被解释为3月1日。
let df = DateFormatter()
df.timeZone = TimeZone(secondsFromGMT: 0)
df.isLenient = true
df.dateFormat = "yyyy-MM-dd"
print(df.date(from: "2015-02-29")) // Optional(2015-03-01 00:00:00 +0000)
被拒绝:
isLenient = true