有什么简单的方法来获取日期?

时间:2011-01-26 06:46:42

标签: iphone objective-c iphone-sdk-3.0

我是iPhone开发的新手。我想将默认日期设置为NSDate对象为字符串。我没有看到任何简单的方法或方法......

我认为NSCalender中可能有一种方法?如果有这样的方法,请告诉我。

提前致谢。

5 个答案:

答案 0 :(得分: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];

答案 1 :(得分:0)

我不清楚你在问什么,但是要创建一个具有当前日期的NSDate对象的实例,一个调用: NSDate * myDate = [NSDate date];

如果你说你有一个需要解析的c-string或NSString来初始化一个NSDate对象,那就是另一个问题。

我在这里发布了一些代码: How get a datetime column in SQLite with Objective C

显示如何使用NSDateFormatter从NSStrings创建NSDates。

答案 2 :(得分: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];

答案 3 :(得分: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];

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

答案 4 :(得分:-2)

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