-3
{    
    NSDateFormatter *dateReader = [[NSDateFormatter alloc] init];

    [dateReader setDateFormat:@"dd-MM-YYYY"]; // for example

    NSDate *itsDate = [dateReader dateFromString:txtDate.text];
}

このコードを使用して日付を文字列から変換しています。テキストから文字列を取得しUITextFieldます。

しかし、「2013-01-04 18:30:00 +0000」という日付を取得するたびに、テキスト フィールドの日付も異なります。そのため、正確な日付を取得できません。私は何をすべきか ??

4

2 に答える 2

1

あなたの問題には「datefromstring」を使用できます。ここに私はこれの例を持っています:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd MMM yyyy "];
NSDate *date1 = [dateFormatter dateFromString:YourDate_String];
 NSLog(@"Date: %@",date1);
[dateFormatter release];
于 2013-09-28T12:08:42.950 に答える
0

これらは、入力と出力に応じて日付形式を変更する目標を達成するのに間違いなく役立ついくつかの関数です

-(NSDate *)convertStringToDate:(NSString *)stringDate
{
    stringDate=[self trimString:stringDate];
    stringDate = [stringDate stringByReplacingOccurrencesOfString:@"+00:00" withString:@""];
    stringDate = [stringDate stringByReplacingOccurrencesOfString:@"T" withString:@" "];
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
    [dateFormatter setDateFormat:@"dd-MM-yyyy"];
    NSDate *myDate = [dateFormatter dateFromString:stringDate];
    return myDate;
}

-(NSDate *)convertDateToDate:(NSDate *) date 
{
    NSDateFormatter *formatter = [[[NSDateFormatter alloc] init] autorelease];
NSDate *nowDate = [[[NSDate alloc] init] autorelease];
[formatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
[formatter setDateFormat:@"yyyy-MM-d H:m:s"];
NSString * strdate = [formatter stringFromDate:date];
nowDate = [formatter dateFromString:strdate];
return nowDate;
}

-(NSString *)convertStringToString:(NSString *)DateLocal
{
    DateLocal = [self trimString:DateLocal];
    DateLocal=[DateLocal stringByReplacingOccurrencesOfString:@" GMT" withString:@""];
    NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
    [dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
    [dateFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss"];
    NSDate *date = [dateFormatter dateFromString: DateLocal];
    NSString *tt = [dateFormatter stringFromDate:date];
    NSDate *dateReturn = [dateFormatter dateFromString:tt];
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
    [dateFormat setDateFormat:@"EEE. d MMMM yyyy, hh:mma"];//"Fri. 1 June 2012, 10:29AM"
    NSString *dateString = [dateFormat stringFromDate:dateReturn];  
    [dateFormat release];
    return dateString;
}

-(NSString *)convertDatetoString:(NSDate * )date
{
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
    [dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    NSString *dateString = [dateFormat stringFromDate:date];  
    [dateFormat release];
    return dateString;
}

-(NSString *)dateFormatingCommonDateToString :(NSDate *)date formateString:(NSString *)strDateFormat
{
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
    [dateFormat setDateFormat:strDateFormat];
    NSString *dateString = [dateFormat stringFromDate:date];  
    [dateFormat release];
    return dateString;
}

-(NSDate *)dateFormatingCommonStringToDate :(NSString *)date formateString:(NSString *)strDateFormat
{
    date=[self trimString:date];
    date = [date stringByReplacingOccurrencesOfString:@"+00:00" withString:@""];
    date = [date stringByReplacingOccurrencesOfString:@"T" withString:@" "];
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
    [dateFormatter setDateFormat:strDateFormat];
    NSDate *myDate = [dateFormatter dateFromString:date];
    return myDate;
}

#pragma mark -
#pragma mark String Methods

-(NSString*)trimString:(NSString *)theString 
{
    NSString *theStringTrimmed = [theString stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]];
return theStringTrimmed;
}
于 2013-09-28T12:06:12.937 に答える