web-dev-qa-db-ja.com

目的cのカスタム形式の文字列で現在時刻を取得する

文字列の次の形式で現在の時刻が必要です。

dd-mm-yyyy HH:MM

どうやって?

55

日付フォーマッタ が必要です。次に例を示します。

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd-MM-yyyy HH:mm"];

NSDate *currentDate = [NSDate date];
NSString *dateString = [formatter stringFromDate:currentDate];
136
Carl Norum

Carlが言ったようにNSDateFormatterを使用するか、または完全に有効なObjective-Cでもある古き良きstrftimeを使用します。

#import <time.h>
time_t currentTime = time(NULL);
struct tm timeStruct;
localtime_r(&currentTime, &timeStruct);
char buffer[20];
strftime(buffer, 20, "%d-%m-%Y %H:%M", &timeStruct);
15
Stephen Canon

簡単なソリューションを次に示します。

- (NSString *)stringWithDate:(NSDate *)date
{
  return [NSDateFormatter localizedStringFromDate:date
                                        dateStyle:NSDateFormatterMediumStyle
                                        timeStyle:NSDateFormatterNoStyle];
}

dateStyletimeStyleを変更して、フォーマットの要件に一致させます。

8
Zorayr

たぶんこれはもっと読みやすいでしょう:

    NSDateFormatter *date = [[NSDateFormatter alloc] init];
    [date setDateFormat:@"HH:mm"];
    NSString *dateString = [date stringFromDate:[NSDate date]];
    [self.time setText:dateString];

まず最初にNSDateFormatter obj-cに名前date、次に適用します[[NSDateFormatter alloc] init];。その後、コードプロセッサに、日付にHOUR/MINUTE/SECONDを持たせたいと言います。最後に、日付をアラートで動作する文字列にするか、ラベルの値を設定する必要があります。これを行うには、NSStringメソッドで文字列を作成し、これを使用します。 [日付stringFromDate:[NSDate日付]]

それを楽しんでください。

3
AmirHossein