RubyMotion Day今天的年数

时间:2014-08-02 18:35:44

标签: rubymotion

我想使用RubyMotion代码生成当前日期编号。我查看了几个IOS解决方案,但我没有足够的经验将代码成功转换为RubyMotion。

我目前正处于以下地点:

def today
  NSDate.today
end

def day_number
  NSDate.from_components (day: today)
end

当我运行以上操作时,它会返回3852055-06-16 00:00:00 +0100。我认为3852055部分是秒,但它似乎不等于今天的日期或6月16日 - 无论如何,它为什么要返回06-16而不是02-08?这里完全糊涂了。

我只想获得今日的电话号码。我写的日期是2014年8月2日,日期应该是214,所以我显然可以在某处出去。

非常感谢任何帮助。

欢呼声

2 个答案:

答案 0 :(得分:0)

这样可以解决问题:

daynum = NSCalendar.currentCalendar.ordinalityOfUnit(NSDayCalendarUnit, inUnit:NSYearCalendarUnit, forDate:NSDate.date)

现在假设你有一个字符串形式的日期,并且你想获得它的日期编号:

datestr = "2014-01-01 11:08:56 +0000"

首先创建NSDateFormatter以将String转换为NSDate

df = NSDateFormatter.new
df.dateFormat = "yyyy-MM-dd HH:mm:ss z"
mydate = df.dateFromString(datestr)
daynum = NSCalendar.currentCalendar.ordinalityOfUnit(NSDayCalendarUnit, inUnit:NSYearCalendarUnit, forDate:mydate)

如果您的日期字符串更简单:

datestr = "2014-01-01"

只使用更简单的dateFormat字符串:

df.dateFormat = "yyyy-MM-dd"

答案 1 :(得分:0)

我建议你看一下motion-support gem,尤其是core-exttime

您可以根据需要使用日期:

=> Mon, 04 Aug 2014
(main)> Time
=> Time
(main)> Time.today
=> 2014-08-04 00:00:00 +0200
(main)> Date.today.day
=> 4
(main)> Time.today.day
=> 4

还有更多。