#objective-c #swift #xcode #date #label
#objective-c #swift #xcode #Дата #ярлык
Вопрос:
Прежде всего, я хочу заранее поблагодарить за помощь.
Я хочу знать, как я могу создать дату на ярлыке с помощью Xcode, и дата будет следовать за той же датой, что и в iphone.
Спасибо
Ответ №1:
Вот один простой подход
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
//uncomment to get the time only
//[formatter setDateFormat:@"hh:mm a"];
//[formatter setDateFormat:@"MMM dd, YYYY"];
[formatter setDateStyle:NSDateFormatterMediumStyle];
//get the date today
NSString *dateToday = [formatter stringFromDate:[NSDate date]];
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320.0f, 20.0f)];
[label setText:dateToday];
[formatter release];
//then add to a view
Комментарии:
1. замените
[formatter setDateFormat:@"MMM dd, YYYY"]
на[formatter setDateStyle:NSDateFormatterLongStyle];
, чтобы я не получил оценку app Store в 2 звезды. Хотите верьте, хотите нет, но есть страны, которые используют формат даты, отличный от вашего. Когда вы используетеdateFormat
для представления дат пользователю, вы делаете это неправильно.2. извините, я пытаюсь использовать этот код, но дата не отображается в моих приложениях.?? есть идея..
3. ну, вот почему я назвал это простым подходом… В любом случае, я изменил ее на менее очевидную. Однако спасибо @fluchtpunkt за комментарий.
Ответ №2:
Создать текстовую дату просто, но реальный вопрос заключается в том, из какого вашего источника данных вы хотите создать текст даты?
Ответ №3:
Дату можно отформатировать и задать в ярлыке, как показано ниже.
NSDate *today = [NSDate date];
NSDateFormatter *dformat = [[NSDateFormatter alloc] init];
[dformat setDateFormat:@"dd:MM:YYYY"];
myLabel.text = [dformat stringFromDate:today];
Ответ №4:
NSDateFormatter обрабатывает формат строковых дат.
Экземпляры NSDateFormatter создают строковые представления объектов NSDate и преобразуют текстовые представления дат и времени в объекты NSDate.
Попробуйте это и увидите:
// Set date format according to your string date format
// e.g.: For,
// 22-12-1996 -> @"dd-MM-yyyy"
// 22/12/1996 -> @"dd/MM/yyyy"
// 1996-12-22 03:45:20 -> @"yyyy-MM-dd HH:mm:ss"
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"dd/MM/yyyy";
//dateFormatter.dateFormat = @"dd-MM-yyyy";
NSDate *date = [dateFormatter dateFromString:dateString];
if(date == nil) {
correctFormat = false;
}
NSLog("Date: %@",date);
Примечание: Каждая пара символов в формате даты связывает соответствующий компонент даты с экземпляром даты. Вы можете создать любой формат даты, используя шаблон строки даты.
Вот документ от Apple: Средства форматирования даты
- Дата (день): dd
- Месяц: ММ или МММ или MMMM
- Год: гг или гггг
Вот список форматов даты: Форматы даты
Вот решение в Swift
var today = Date()
var d_format = DateFormatter()
d_format.dateFormat = "dd:MM:yyyy"
label.text = dformat.string(from: today)