相关疑难解决方法(0)

比较没有时间组件的NSDates

在一个快速的操场上,我一直在使用

NSDate.date() 
Run Code Online (Sandbox Code Playgroud)

但是,这总是会附加时间元素.对于我的应用程序,我需要忽略时间元素.这在Swift中可能吗?怎么做到呢?即使我可以将时间元素设置为每个日期也同时工作.

此外,我正在尝试比较两个日期,目前我正在使用以下代码:

var earlierDate:NSDate = firstDate.earlierDate(secondDate)
Run Code Online (Sandbox Code Playgroud)

这是唯一的方法,还是可以忽略时间元素的方式?例如,如果他们是同一天,但不同的时间,我不想要结果.

time nsdate foundation ios swift

54
推荐指数
9
解决办法
4万
查看次数

为什么必须将协议运算符实现为全局函数?

我已经看到了这个Swift Equatable Protocol问题的答案,该问题提到了如何==在全局范围内声明该方法.

如果我不采用Equatable,我仍然可以声明==测试我的两种类型之间的相等性.

// extension Foo: Equatable {}

func ==(lhs: Foo, rhs: Foo) -> Bool {
    return lhs.bar == rhs.bar
}

struct Foo {
    let bar:Int
}
Run Code Online (Sandbox Code Playgroud)

它的实现需要在全球范围内声明的事实使得它似乎是偶然的,并且协议不同,即使Equatable被采用.

Equatable协议如何只是语法糖只是让(我们和)编译器安全地知道我们的类型实现了协议所需的方法?

为什么运算符实现必须全局声明,即使对于协议也是如此?这是由于调度操作员的某种不同方式吗?

ios swift equatable

29
推荐指数
3
解决办法
3419
查看次数

在iOS8/Swift中为UIDatePicker设置文本颜色和字体

我一直在设置UIDatePicker 字体颜色时遇到麻烦.我的应用程序中的其他所有内容都非常简单,除此之外.有人知道怎么做这个吗?我正在使用Swift for iOS8.

截图

uidatepicker ios swift

25
推荐指数
7
解决办法
3万
查看次数

是另一个日期的同一周,月,年的日期

知道某个日期是在同一周(或年份或月份)中的最佳方式是什么,最好是使用扩展,并且只使用Swift

作为一个例子,在Objective-C中我有

- (BOOL)isSameWeekAs:(NSDate *)date {
    NSDateComponents *otherDay = [[NSCalendar currentCalendar] components:NSCalendarUnitEra | NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay fromDate:self];
    NSDateComponents *today = [[NSCalendar currentCalendar] components:NSCalendarUnitEra | NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay fromDate:date];
    return ([today weekOfYear]   == [otherDay weekOfYear] &&
            [today year]         == [otherDay year] &&
            [today era]          == [otherDay era]);
}
Run Code Online (Sandbox Code Playgroud)

请不要提出解决桥接DateNSDate

date ios swift

21
推荐指数
2
解决办法
8434
查看次数

在Swift中使用NSDate组件

我有一个日期,我需要拆分一些组件.例如

let components = NSCalendarUnit.CalendarUnitDay | NSCalendarUnit.CalendarUnitHour
let date = calendar.components(components, fromDate: aDate, toDate: NSDate(), options: nil)
var dateToPrint = "\(date.day) days  \(date.hour) hours"
Run Code Online (Sandbox Code Playgroud)

dateToPrint将是从aDate到现在的天数和小时数.但如果我想要几周而不是几天

let components = NSCalendarUnit.CalendarUnitWeek | NSCalendarUnit.CalendarUnitHour
let date = calendar.components(components, fromDate: aDate, toDate: NSDate(), options: nil)
var dateToPrint = "\(date.week) weeks \(date.hour) hours"
Run Code Online (Sandbox Code Playgroud)

date.week不存在.那我怎么解决这个问题呢?

macos nsdate nsdatecomponents ios swift

11
推荐指数
1
解决办法
2万
查看次数

如何检查时间是否在swift的特定范围内

嗨,我想检查当前时间是否在一个时间范围内,比如8:00 - 16:30.我的代码显示我可以将当​​前时间作为字符串获取,但我不确定如何使用此值来检查它是否在上面指定的时间范围内.任何帮助将不胜感激!

var todaysDate:NSDate = NSDate()
var dateFormatter:NSDateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "HH:mm"
var dateInFormat:String = dateFormatter.stringFromDate(todaysDate)
println(dateInFormat) // 23:54
Run Code Online (Sandbox Code Playgroud)

time swift

10
推荐指数
4
解决办法
2万
查看次数

如何在swift 3.0中比较日期?

我有两个约会,我想比较一下.我该如何比较日期?我必须约会对象.说modificateionDate老了updatedDate.

那么比较日期的最佳做法是什么?

date-comparison swift3

7
推荐指数
2
解决办法
1万
查看次数

检查 NSDate 是否是 6 个月前

我已经从我的服务器返回了一个 NSDate 值,我需要知道这个 NSDate 是多久以前的。我需要编写一个条件来查看日期是否超过 6 个月(在 Swift 中,但我可以转换为 Objective-C)。

这是在控制台中打印时返回的 NSDate:

 (2015-09-07 01:22:01 +0000)
Run Code Online (Sandbox Code Playgroud)

我如何检查上述日期是否早于 6 个月?

逻辑将是这样的:

//dateValue is the NSDate returned
var dateValue = log.createdAt
    if (dateValue > 6 months){
    }
    else{
    }
Run Code Online (Sandbox Code Playgroud)

datetime cocoa-touch calendar nsdate ios

2
推荐指数
1
解决办法
1320
查看次数

如何比较两个日期字符串的值?

如何将数据库中的值与当前日期进行比较?执行某些操作时,日期会保存在数据库中,我需要将该日期与当前日期进行比较并执行一些操作。我怎样才能做到这一点 ?

日期以这种格式保存在我的日期基础上:

    var tasksin2 : Task?

    dateFormatter.dateFormat = "dd/MM/yyyy  hh:mm"

    let mydate="\(dateFormatter.string(from: datePicker.date))"

    tasksin2?.time=mydate

    (UIApplication.shared.delegate as! AppDelegate).saveContext()
Run Code Online (Sandbox Code Playgroud)

time date ios swift

1
推荐指数
1
解决办法
2461
查看次数

检查两个日期是否等于分钟精度

我想检查两个日期是否相等,其中相等意味着它们与分钟的值相同.我不想比较秒值.

例如:

// should be equal
11/12/17 11:19:29
11/12/17 11:19:03

// not equal
11/12/17 11:19:59
11/12/17 11:20:00
Run Code Online (Sandbox Code Playgroud)

我正在考虑这样做的一种方法是获取时间组件并通过每个组件.但我想知道是否有更快或更清洁的方式.

cocoa-touch nsdate nscalendar ios swift

0
推荐指数
1
解决办法
59
查看次数