diff --git a/UI/Contacts/UIxContactEditor.m b/UI/Contacts/UIxContactEditor.m index 0c9697d2f..64aabeac4 100644 --- a/UI/Contacts/UIxContactEditor.m +++ b/UI/Contacts/UIxContactEditor.m @@ -31,6 +31,7 @@ #import +#import #import #import #import @@ -341,7 +342,6 @@ static Class SOGoContactGCSEntryK = Nil; NSMutableArray *units, *categories; NSCalendarDate *date; id o; - int seconds; unsigned int i, year, month, day; [card setNWithFamily: [attributes objectForKey: @"c_sn"] @@ -357,10 +357,10 @@ static Class SOGoContactGCSEntryK = Nil; setSingleValue: [attributes objectForKey: @"c_screenname"] forKey: @""]; - seconds = [[NSString stringWithFormat: @"%@", [attributes objectForKey: @"birthday"]] intValue]; - if (seconds != 0) + o = [attributes objectForKey: @"birthday"]; + if ([o isKindOfClass: [NSString class]] && [o length]) { - date = [NSCalendarDate dateWithTimeIntervalSince1970: seconds]; + date = [card dateFromString: o inContext: context]; year = [date yearOfCommonEra]; month = [date monthOfYear]; day = [date dayOfMonth]; diff --git a/UI/Contacts/UIxContactView.m b/UI/Contacts/UIxContactView.m index 096e0054b..831b9b2a3 100644 --- a/UI/Contacts/UIxContactView.m +++ b/UI/Contacts/UIxContactView.m @@ -875,7 +875,7 @@ o = [card birthday]; if (o) { - [data setObject: [NSNumber numberWithInt: [o timeIntervalSince1970]] + [data setObject: [o descriptionWithCalendarFormat: @"%Y-%m-%d"] forKey: @"birthday"]; } diff --git a/UI/WebServerResources/js/Contacts/Card.service.js b/UI/WebServerResources/js/Contacts/Card.service.js index 890f79e10..9df4605e2 100644 --- a/UI/WebServerResources/js/Contacts/Card.service.js +++ b/UI/WebServerResources/js/Contacts/Card.service.js @@ -470,9 +470,10 @@ _this.refs[i] = new Card(o); }); if (_this.birthday) { - _this.birthday = new Date(_this.birthday * 1000); Card.$Preferences.ready().then(function() { - _this.$birthday = Card.$Preferences.$mdDateLocaleProvider.formatDate(_this.birthday); + var dlp = Card.$Preferences.$mdDateLocaleProvider; + _this.birthday = _this.birthday.parseDate(dlp, '%Y-%m-%d'); + _this.$birthday = dlp.formatDate(_this.birthday); }); } // Mark card as loaded @@ -510,9 +511,9 @@ // We convert back our birthday object if (!deep) { if (card.birthday) - card.birthday = card.birthday.getTime()/1000; + card.birthday = card.birthday.format(Card.$Preferences.$mdDateLocaleProvider, '%Y-%m-%d'); else - card.birthday = 0; + card.birthday = ''; } return card;