2011-01-26 55 views
0

我是iPhone新手。我想将默认日期设置为NSDate Object作为字符串。我不明白我觉得可能是在NSCalender的方法没有简单的方法或方法...有没有简单的方法来获取日期?

?如果有这样的方法,请告诉我。

在此先感谢。

回答

0

编辑:上架时间格式化字符串。

您需要看NSDateNSDateFormatter类。这里有一个如何使用它们一个简单的例子:

NSString* defaultDateString = [NSString stringWithFormat:@"2011-01-22 15:30:00"]; 
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; 
NSDate* defaultDate = [dateFormatter dateFromString:defaultDateString]; 
[dateFormatter release]; 

,如果你想从一个日期获取字符串你可以使用:

NSString* defaultDateString = [dateFormatter stringFromDate:defaultDate]; 
+0

yup buddy我忘了sudenly我从我自己的代码得到答案.......但非常感谢你给我时间 – Ankit

0

我不是你是什么完全清楚问,但与当前日期创建一个NSDate对象的一个​​实例,一个调用: 的NSDate *数值指明MyDate = [NSDate的日期];

如果你说你有一个需要被解析到初始化一个NSDate对象的c字符串或NSString的,是另外一个问题。

我这里有一些代码贴: How get a datetime column in SQLite with Objective C

展示了如何创建使用NSDateFormatter NSString的NSDates。

-2
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc]init]autorelease]; 
[dateFormatter setDateFormat:@"yyyy-mm-dd"]; 
NSDate *yourDate = [dateFormatter dateFromString:@"2011-01-26"]; 
+0

四个空格缩进是所有你需要的代码块。另外,欢迎来到这个网站! –

+0

“mm”是分钟的说明符,而不是几个月。因此,您的示例/外观/喜欢它的工作原理是因为1月是默认月份,但实际上创建的日期为2011年1月26日00:01本地时间。如果你的日期是'2011-10-01',创建日期将是1/Jan/2011在00:10本地O_O小心! –

+0

确定它很好,但它不需要24小时的时间,我该怎么办? – Ankit

0

如果你想从一个字符串创建一个NSDate,你需要使用一个NSDateFormatter来做到这一点。请注意格式化程序在构建日期时将使用当前区域设置的时区,除非您将时区作为格式的一部分。有关构建时区的更多信息,请参阅NSTimeZone

例如,使用无处不在的格式UTC“2011-01-16 00:00”创建一个日期,你会怎么做:

NSDateFormatter* formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"yyyy-MM-dd HH:mm"]; 
// Only certain abbreviations are okay, like UTC. See docs for more info 
[formatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]]; 

NSDate* midnight_26_jan_2011_utc = [formatter dateFromString:@"2011-01-26 00:00"]; 

// this will display in your system locale 
// (for me, it shows 2011-01-25 19:00 +0500 because I'm America/New_York time) 
NSLog(@"date: %@", midnight_26_jan_2011_utc); 
[formatter release]; 
+0

喜贾森感谢您的回答,但我有在服用24小时的时间问题..如果我拿13:00比它不是在我的柜台正常工作,所以帮我 – Ankit

+0

@Ankit你可以连续使用12小时的时间,否则就没时间在所有。如果你不关心时间部分,不要把HH:mm放在那里;如果你想要12小时的时间,你可以用hh:mm代替。 –

0
NSDateFormatter *DateFormatter=[[NSDateFormatter alloc] init]; 
[DateFormatter setTimeZone:[NSTimeZone defaultTimeZone]]; 
[DateFormatter setDateFormat:@"yyyy-MM-dd hh:mm:ss"]; //here,you can set the date format as you need 

NSDate *now = [[[NSDate alloc] init]autorelease]; 
NSString *theDate = [DateFormatter stringFromDate:now]; 

现在,您可以使用字符串日期。 :)

相关问题