从字典响应中更改 NSUserDefaults standardUserDefaults 的日期值

弗朗茨·诺埃尔

我的方法接收一个名为字典responseDict其中包含的键,例如idstatusnamephoneNumberdate等。

responseDict[@"data"][@"value"][n] 

n数字)

如果我们的代码用于NSUserDefaults访问数据:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

如何将dateMySQL 属性更改2017-05-12 10:00:00Dec 5, 2017 10 AM

我尝试以下,但它似乎没有改变defaultsUILabel

[defaults setInteger:[dictionary[@"id"] integerValue] forKey:@"ID"];
[defaults setObject:dictionary[@"status"] forKey:kNSUDoctorStatus];
[defaults setInteger:[dictionary[@"dur"] integerValue] forKey:@"duration"];
[defaults setObject:[NSString stringWithFormat:@"%@ some",dictionary[@"date"]] forKey:@"date"];
[defaults synchronize];

编辑:

用户界面标签

UILabel 似乎已通过以下方式添加到视图中:

UILabel *vb = (UILabel *)[self.view viewWithTag:personMessageViewTag];

由以下定义:

#define personMessageViewTag 3001

博士班

还有一个PersonDetailView初始化类:

PersonDetailView *personOnTheView;

并在一个方法中调用:

personOnTheView = [PersonDetailView sharedInstance];
personOnTheView.delegate = self;
[personOnTheView updateValues];
[self.view addSubview:personOnTheView];

方法:这里是代码[personOnTheView updateValues]

-(void)updateValues{

    NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];

    NSString *strImageUrl = [NSString stringWithFormat:@"%@%@",baseUrlForXXHDPIImage,[ud objectForKey:kOnGoingBookingPersonProfileImageKey]];
    _doctorName.text = [ud objectForKey:kOnGoingBookingPersonNameKey];

    NSString *at = [NSString stringWithFormat:@"%@",flStrForObj([Helper getLocalDate:[ud objectForKey:kOnGoingBookingPersonBookingDate]])];

    _appoinmentTime.text = at;

     float rating = [[ud objectForKey:kOnGoingBookingPersonRatingKey] floatValue];

    _starRatingView.value = rating;

    [_profilepic sd_setImageWithURL:[NSURL URLWithString:[Helper removeWhiteSpaceFromURL:strImageUrl]]
                  placeholderImage:[UIImage imageNamed:@"doctor_image_thumbnail"]
                         completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL){
                         }];
}

问题:

每次我更改或修改:

[defaults setObject:dictionary[kPNPayloadAppoinmentTimeKey] forKey:kOnGoingBookingPersonBookingDate];

至:

[defaults setObject:[NSString stringWithFormat:@"%@ some",dictionary[@"date"]] forKey:@"date"];

或者就这么简单:

[defaults setObject:@"Something here" forKey:@"date"];

它显示空白。

附加信息编辑:

[Helper getLocalDate] 代码:

+(NSString *)getLocalDate:(NSString *)gmtdate {

    NSString *dateStr = gmtdate;
    NSDateFormatter *dateFormatter1 = [[NSDateFormatter alloc] init];
    [dateFormatter1 setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    NSDate *destinationDate = [dateFormatter1 dateFromString:dateStr];

    NSDateFormatter *dateFormatters = [[NSDateFormatter alloc] init];
    [dateFormatters setDateFormat:@"MMM d, yyyy HH a"];
    dateStr = [dateFormatters stringFromDate: destinationDate];
    // NSLog(@"DateString : %@", dateStr);
    return dateStr;
}
希特什·苏丹尼亚

借助此方法,如果日期字符串中有时区,您可以获得本地格式的日期

-(NSDate*)convertDateToLocal:(NSString *)strDate
{
    NSDateFormatter *localFormat = [[NSDateFormatter alloc] init];
    [localFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss z"];
    NSDate *localDate = [localFormat dateFromString:strDate];
    return localDate;
}

如果你没有时区,这里有两个公共的日期转换方法

1) 字符串中的日期,

+ (NSDate *)dateFromString:(NSString *)strSource inFormat:(NSString *)strTargetFormat
{
  NSDateFormatter *dtfFormatter = [[NSDateFormatter alloc] init];
  [dtfFormatter setDateFormat:strTargetFormat];

  return [dtfFormatter dateFromString:strSource];
}

2) 来自日期的字符串,

+ (NSString *)stringFromDate:(NSDate *)dtSourceDate inFormat:(NSString *)strTargetFormat
{
  NSDateFormatter *dtfFormatter = [[NSDateFormatter alloc] init];
  [dtfFormatter setDateFormat:strTargetFormat];

  if (dtSourceDate != nil)
    return [dtfFormatter stringFromDate:dtSourceDate];
  else
    return @"";
}

希望这可以帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章