标签: nscalendar

在IOS SDK中获取周日期

我想通过日期名称获取当前和下周的日期.

即如果今天的日期是28-06-2013(星期五),那么我想把这个日期从2013年6月23日(周日)到29-06-2013(星期六).

对于下周, 我希望从2013年6月30日(星期日)到2013年7月6日(星期六)获取日期.

我怎样才能做到这一点?

谢谢,

calendar nscalendar ios

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

-[NSCalendar dateFromComponents:] 因 SIGABRT 崩溃

我们正在使用dateFromComponents:解析从服务器返回的日期字符串。

在极少数情况下,此调用会崩溃,但我们无法重现该错误。有没有人见过这种堆栈跟踪?

Thread 0:
0   libicucore.A.dylib                  0x3b13514e _uprv_asciitolower + 18
1   libicucore.A.dylib                  0x3b18757b _uloc_openKeywordList + 291
2   libicucore.A.dylib                  0x3b135d7f _uloc_getName + 15
3   libicucore.A.dylib                  0x3b135ba7 __ZN3icu6Locale4initEPKca + 175
4   libicucore.A.dylib                  0x3b14f359 __ZN3icu6Locale14createFromNameEPKc + 57
5   libicucore.A.dylib                  0x3b1b13db __ZN3icu8Calendar11setWeekDataERKNS_6LocaleEPKcR10UErrorCode + 131
6   libicucore.A.dylib                  0x3b1b164f __ZN3icu8CalendarC2ERKNS_8TimeZoneERKNS_6LocaleER10UErrorCode + 123
7   libicucore.A.dylib                  0x3b1d5857 __ZN3icu17GregorianCalendarC2ERKNS_8TimeZoneER10UErrorCode + 27
8   libicucore.A.dylib                  0x3b1d5d7b __ZN3icu17GregorianCalendar18setGregorianChangeEdR10UErrorCode + 163
9   CoreFoundation                      0x33728967 __CFCalendarSetupCal + 95
10  CoreFoundation                      0x336a5db1 __CFCalendarComposeAbsoluteTimeV + 41
11  CoreFoundation                      0x336b70d3 -[__NSCFCalendar dateFromComponents:] + 1139
12 …
Run Code Online (Sandbox Code Playgroud)

singleton objective-c nscalendar ios objective-c-category

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

NSCalendarUnitEra 有多长?

我似乎无法在文档或在线的任何地方弄清楚 NSCalendarUnitEra 的长度。我假设超过一年,或者可以指定长度吗?任何人都可以帮忙吗?

objective-c nscalendar ios

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

在 Swift 中创建一个日期对象,只需一个工作日和一个小时

我环顾四周,没有找到我需要的东西。

这是我需要的:

在 Swift 中,我想创建一个 Date(或 NSDate)对象来表示一周中的某一天以及该工作日中的特定时间。我不在乎几年和几个月。

这是因为我有一个每周重复活动的系统(在特定工作日、特定时间举行会议,例如“每周一晚上 8 点”)。

这是我到目前为止的代码(不起作用):

/* ################################################################## */
/**
 :returns: a Date object, with the weekday and time of the meeting.
 */
var startTimeAndDay: Date! {
    get {
        var ret: Date! = nil
        if let time = self["start_time"] {
            let timeComponents = time.components(separatedBy: ":")
            let myCalendar:Calendar = Calendar.init(identifier: Calendar.Identifier.gregorian)
            // Create our answer from the components of the result.
            let myComponents: DateComponents = DateComponents(calendar: myCalendar, timeZone: nil, era: nil, year: nil, month: nil, day: …
Run Code Online (Sandbox Code Playgroud)

date nsdate nscalendar swift

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

Swift - 从一系列工作日中获取下一个日期

语境

我正在制作一个应用程序,其中我有截止日期的任务,一旦完成,我想根据用户选择的星期几重复模式根据新日期设置新的截止日期。

我将截止日期保存为日期。我将重复模式保存为 Int32(星期日为 1,星期一为 2,星期二为 4...),但我可以轻松地将其保存为代表每一天的字符串或数字数组

问题

如何将下一个截止日期作为日期(以便我可以重复任务)?

例子

如果我有一个在星期六完成的任务并且每个星期一和星期三都有重复模式,我希望它被设置为下一个星期一。如果他们在周一或周二完成,我想设置下一个周三。

选择重复图案的照片

选择其他日期时,从不选择月份。我知道如何处理这个月。问题仅在于一周中的几天

nsdate nscalendar swift swift3

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

如何找出一周的第一天?(周一或周日)

我想检查用户一周的第一天是星期一还是星期日,以便使用日历执行某些操作。是否可以确定使用NSCalendar或任何其他方式?

nscalendar ios

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

Swift:ISO 8601 日期从周到年

我正在尝试使用 Swift 获取给定日历周和年份的一周第一天的日期。

let calendar = Calendar(identifier: .gregorian)
var dayComponent = DateComponents()
dayComponent.weekOfYear = 7
dayComponent.weekday = 1
dayComponent.year = 2016
var date = calendar.date(from: dayComponent as DateComponents)
Run Code Online (Sandbox Code Playgroud)

第一个问题是 weekday = 1 将给出星期日而不是 ISO 8601(星期一),因此我假设 NSCalendar 与 ISO 8601 不兼容。但没问题,我可以使用工作日= 2。

第二个问题是上面的代码将给出 7-Feb-2016 而不是 15-Feb-2016。这里的问题是 ISO 8601 将第一周定义为第一个星期四的那一周,NSCalendar 也没有使用它。

那么问题来了,有没有办法让 ISO 8601 与 swift 兼容的一周第一天呢?

我发现的所有示例均未生成 ISO 兼容日期。谢谢!

date nscalendar swift

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

FSCalendar 迅速隐藏下个月标签

我已经实现FSCalendar了日期,但我只需要隐藏下一个月的标签。我在附图中标记为红色以供参考。

实际上我已经尝试了所有属性但找不到它。我知道没有显示我正在使用的上个月日期,calendar.placeholderType = .none但我需要删除上个月的标签。就像我们在本月一样,MARCH但我不想只显示 FEB 或 APR 的标签或标题。

二月——三月——四月

我在 swift 5 中使用 FSCalendar。

日历

nscalendar ios swift fscalendar

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

如何实现上个月/下个月的按钮并显示当月的日期?

场景:

我有跟踪iOS应用程序的费用,我将费用从费用明细视图控制器存储到表视图(带有提取结果控制器),显示费用列表以及类别和金额和日期.我的实体"Money"中有一个日期属性,它是费用或收入的父实体.

题:

我想要的是基本上按月分类我的费用并将其显示为部分标题,例如:(2012年11月1日 - 11月30日),它显示根据特定月份的费用金额和相关的东西.在该视图中提供了两个按钮,如果我按下右按钮,它将使月份增加一个月(2012年12月1日 - 12月31日),同样左按钮会将月份减少一个月.

我怎么做到这一点?我正在尝试以下代码 - 这有点工作.假设我的当前部分标题为(2012年11月1日 - 11月30日),当我按下左按钮时,它给出了截面标题(2012年10月1日 - 10月30日),这是错误的,它应该是2012年10月31日而不是2012年10月30日.

- (NSDate *)firstDateOfTheMonth
{
    self.startDate = [NSDate date];

    NSCalendar* calendar = [NSCalendar currentCalendar];

    [calendar setTimeZone:[NSTimeZone localTimeZone]];

    NSDateComponents* components = [calendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit fromDate:self.startDate];

    [components setDay:1];

    firstDateOfTheMonth = [[calendar dateFromComponents:components] retain];

    return firstDateOfTheMonth;

}

- (NSDate *)lastDateOfTheMonth
{
    NSCalendar* calendar = [NSCalendar currentCalendar];

    [calendar setTimeZone:[NSTimeZone localTimeZone]];

    NSDateComponents* components = [calendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit fromDate:firstDateOfTheMonth];

    [components setMonth:[components month]+1];
    [components setDay:0];

    lastDateOfTheMonth = [[calendar dateFromComponents:components] retain];

    return lastDateOfTheMonth;
}
Run Code Online (Sandbox Code Playgroud)

然后我有一个名为"monthCalculation"的方法,我在其中调用上述两种方法.

- …
Run Code Online (Sandbox Code Playgroud)

objective-c nsdate nscalendar nsdatecomponents ios

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

NSCalendarUnit - 修改unitFlags

在我的应用程序中,我想让用户设置日期的显示样式.我已经考虑过修改unitFlags以实现这一目标.我是说这个

NSUInteger unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSWeekCalendarUnit | NSDayCalendarUnit;
Run Code Online (Sandbox Code Playgroud)

但问题是:如何NSCalendarUnit在此整数中添加或删除

我是NSCalendar用来NSDateComponents约会的.

对不起,如果这个问题太愚蠢了,我的按位操作就不够了:(

iphone nscalendar nsdatecomponents nsuinteger ios

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

在NSDate的小时内添加3小时

我想在我当前的日期添加3个小时.我使用以下代码添加小时数,但它增加了6个小时到当前日期.

NSDate *n = [NSDate date];
int daysToAdd = 3;  // or 60 :-)

// set up date components
NSDateComponents *components1 = [[[NSDateComponents alloc] init] autorelease];
[components1 setHour:daysToAdd];

// create a calendar   
NSCalendar *gregorian12 = [NSCalendar currentCalendar];

NSDate *newDate2 = [gregorian12 dateByAddingComponents:components toDate:n options:0];
NSLog(@"Clean: %@", newDate2);
Run Code Online (Sandbox Code Playgroud)

结果是: -

2013-09-10 12:25:24.752 project[1554:c07] Clean: 2013-09-10 06:55:15 +0000
Run Code Online (Sandbox Code Playgroud)

objective-c nsdate nscalendar nsdatecomponents ios

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

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

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

例如:

// 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
查看次数

我怎样才能获得我当前的日期ios Swift?

具体来说,我希望print我的当前日期格式如下 - 2016-12-08 03:37:22 +0000.我试过NSDateComponents.Swift 2.1告诉我NSSecondCalendarUnit已被弃用且无法识别NSCalendarUnitSecond.做这个的最好方式是什么?

nsdate nscalendar nsdatecomponents swift

-7
推荐指数
1
解决办法
3798
查看次数