我想最简单的方法是将字符串(或用户输入的任何内容,似乎您没有使用UIDatePicker
)转换为日期并检查是否可行。
我有一个特殊情况,要检查用户在哪里输入未来的日期和时间,我需要验证该时间是否有效(下面解释我的意思是有效的),考虑到用户可能会受到其所在时区的夏时制的影响。
例如:
4 Oct 2020 - Daylight Saving Time Starts
When local standard time is about to reach
Sunday, 4 October 2020, 2:00:00 am clocks are turned forward 1 hour to
Sunday, 4 October 2020, 3:00:00 am local daylight time instead.
2020年10月4日,2:01:00 am
这是无效的,因为时间已转发至凌晨3点。
如何在iOS应用中进行验证? (假设我)
基本上,我需要通知用户所选时间受DST影响,并且用户需要选择其他时间。
我研究了日期和时区API,似乎找不到任何可以验证这一点的东西。
感谢您,将提供任何帮助。
我有一个特殊情况,检查用户在哪里输入未来的日期和时间,并且考虑到用户可能受到影响,因此我需要验证该时间是否有效(下面解释我的意思是有效的……)>] >
我想最简单的方法是将字符串(或用户输入的任何内容,似乎您没有使用UIDatePicker
)转换为日期并检查是否可行。
对于中欧,DST将于2020年3月29日开始,所以
let df = DateFormatter()
df.locale = Locale(identifier: "de_DE")
df.timeZone = TimeZone(identifier:"Europe/Berlin")
df.dateFormat="yyyy-MM-dd hh:mm"
if let theDate = df.date(from: "2020-03-29 02:01")
{
print(theDate)
} else {
print ("Illegal date")
}
将打印非法日期
。更加棘手的是切换回非DST,因为(在欧洲中部)2020-10-25 02:01
有两个可能的日期-这可能意味着冬季或夏季时间具有两种不同的UTC表示形式。我想最简单的方法是将字符串(或用户输入的任何内容,似乎您没有使用UIDatePicker
)转换为日期并检查是否可行。