如何从 NSDate 中获取日期组件?
我有一个 NSDate 对象,需要一天的整数。即,如果我们有 2010 年 5 月 25 日,则 int 应该为 25。有没有简单的方法可以做到这一点?
I have an NSDate object and need an integer of the day. i.e. if we have 25th May 2010, the int should be 25. Is there a simple way to do it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
请考虑这篇文章了解如何获取日历来自
NSDate
的组件。本质上它看起来像这样:(不要忘记上面的内存管理。)
Please consider this post on how to get calendar components from an
NSDate
. Essentially it will look something like:(Don't forget memory management for the above.)
如果您只需要 NSDate 的“25”部分,您可以从 dateFormatter 获取它。
像这样的东西:
If you only need the "25" part of an NSDate you can get it from a dateFormatter.
Something like:
请注意,NSDate 只是一个时间戳,并且在考虑给定日历和时区时只有“天”。如果您想要当前时区的公历,
如果您想要UTC日,请设置
tz = nil
。另外,CFAbsoluteTime 和 NSDate(据我所知)基于 POSIX 时间,指定 86400 秒的一天,因此不处理闰秒。
Note that an NSDate is just a timestamp and only has a "day" when considered with respect to a given calendar and time zone. If you want the Gregorian calendar in the current time zone,
If you want the UTC day, set
tz = nil
.Also, CFAbsoluteTime and NSDate are (as far as I know) based on POSIX time which specifies a 86400-second day, and thus do not handle leap seconds.
使用“EEEE”作为当天全名的格式。
使用“EEE”作为该天的短名称的格式。
例子 :
Use "EEEE" as the format for full name of the day.
Use "EEE" as the format for the short name of the day.
Example :
我不久前遇到了这个问题,我创建了以下方法来使一切变得更容易。
定义
日期方法
从值创建日期
从日期获取字符串
示例
方法 < code>[self getDateWithMonth:12 day:24 Year:1994] 返回一个通常难以阅读的
NSDate
对象,因此您可以使用[self getStringFromDate:date dateType: DATE_TYPE_MMDDYYYY]
获取NSDate
对象的字符串。使用定义(宏)指定您想要在字符串中获取的日期的格式。
例如:
DATE_TYPE_hhmmss
将返回小时|分钟|秒
,DATE_TYPE_MMDDYYYY
将返回月|日|年
,DATE_TYPE_MMDDYYYYhhmmss
将返回月|日|年|时|分|秒
,DATE_TYPE_MMDDYYYYWWhhmmss
将返回Month|Day|Year|Weekday (#)|Hour|Minute|Second
等等...
控制台日志
I had this problem a while back, and I created the following methods to make everything easier.
Definitions
Date Methods
Create Date From Values
Get String From Date
Example
The method
[self getDateWithMonth:12 day:24 year:1994]
returns anNSDate
object which is usually hard to read, so you can use[self getStringFromDate:date dateType:DATE_TYPE_MMDDYYYY]
to get a string of anNSDate
object.Use the definitions (macros) to specify the format of the date you would like to get in the string.
For example:
DATE_TYPE_hhmmss
would return theHour|Minute|Second
,DATE_TYPE_MMDDYYYY
would return theMonth|Day|Year
,DATE_TYPE_MMDDYYYYhhmmss
would return theMonth|Day|Year|Hour|Minute|Second
,DATE_TYPE_MMDDYYYYWWhhmmss
would return theMonth|Day|Year|Weekday (#)|Hour|Minute|Second
and so on...
Console Log