【问题标题】:iOS get today's day and month as int [duplicate]iOS以int形式获取今天的日期和月份[重复]
【发布时间】:2013-12-29 16:57:36
【问题描述】:

我只是在学习 Objective-C 和 Xcode,并尝试制作一些简单的应用程序。
我需要以 ant int 的形式获取今天的日期和月份。
示例:
今天:2013 年 12 月 29 日
(int) TodaysDay = 29;
(int) TodaysMonth = 1200;(1 - 100、2 - 200、3 - 300...)
(int) TodaysValue = TodaysDay + TodaysMonth;(例如 1229)
switch(TodaysValue)
case 1229:
do something.
我试过用这个:

NSDate *today = [NSDate date];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"dd/MM"];
NSString *dateString = [dateFormat stringFromDate:today];  

感谢您的帮助!
这很好用!

CFGregorianDate currentDate = CFAbsoluteTimeGetGregorianDate(CFAbsoluteTimeGetCurrent(), CFTimeZoneCopySystem());
TodaysDay = currentDate.day;
TodaysMonth = currentDate.month;
TodaysValue = TodaysDay + (TodaysMonth * 100);

【问题讨论】:

    标签: ios objective-c ios7


    【解决方案1】:

    查找NSCalendarcomponents:fromDate: 方法 - 这会将NSDate 对象正确转换为NSDateComponents 对象,后者提供您需要的日期和月份的属性。

    【讨论】:

      【解决方案2】:

      得到 dateString 后,执行如下表达式,获取整数形式的日期和月份。

       NSArray *date = [dateString componentsSeparatedByString:@"/"];
       if ([date count] == 2)
       {
           NSUInteger day = [[date objectAtIndex:0] integerValue];
           NSUInteger month = [[date objectAtIndex:1] integerValue];
       }
      

      【讨论】:

      • 呃。这太复杂了,也很脆弱。日期格式因语言环境而异,因此将日期格式化程序的输出解析为字符串可能会中断。 CRD 推荐使用 NSCalendar 和 components:fromDate: 是一种更清洁、更可靠的方法。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-10
      • 2013-05-28
      • 1970-01-01
      • 2018-12-19
      • 1970-01-01
      相关资源
      最近更新 更多