2013-09-28 70 views
-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”这个日期连我的文本字段的日期都不一样。 所以我不能得到正确的日期。 我该怎么办?

+0

用户类型date in textfield?如果是的话,那么可能这不是一个好主意,你应该向用户提供一个日期选择器来选择所需的日期。 –

+0

阅读罚款[手动](http://www.unicode.org/reports/tr35/tr35-25.html#Date_Format_Patterns)。这是“yyyy”,而不是“YYYY”。 –

+1

用户没有输入日期,显而易见的是,用户从日期选择器中选择日期,因为该文本框的输入视图是日期选择器 –

回答

1

您可以使用“datefromstring”乌拉圭回合问题,实现自己的目标更改日期格式。在这里我举了一个例子:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"dd MMM yyyy "]; 
NSDate *date1 = [dateFormatter dateFromString:YourDate_String]; 
NSLog(@"Date: %@",date1); 
[dateFormatter release]; 
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; 
} 
相关问题