0

文字列にこれを含めて、フォーマットを2012-07-16 10:20:25変更したいのですが、この数値をvarに入れたいです。DateTimeyyyyMMddHHmmss20120716102025int

私は試した。

NSDateFormatter *ConvertFormat;
int *DateTimeConverted;

ConvertFormat = [[NSDateFormatter alloc] init];
[ConvertFormat setDateFormat:@"yyyyMMddHHmmss"];

DateTimeConverted = [ConvertFormat stringFromDate:StringDateTime];
4

3 に答える 3

0

次の行をコードに追加してみてください。

long long int DateTimeConverted = [[ConvertFormat stringFromDate:/* your date object */] longlongInt];
于 2012-07-24T15:05:01.233 に答える
0

このような方法で日付を保存するのはばかげていると思います。他のもの (タイムスタンプなど) を使用する必要があります。そうは言っても、ここに私の答えがあります。

文字列をオブジェクトに変換してから文字列にNSDate戻し、整数値を取得できます。値を保持するのに十分な幅の整数型 ( など) を使用することを忘れないでくださいlong long

NSString *dateString = @"2012-07-16 10:20:25";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *date = [formatter dateFromString:dateString];
[formatter setDateFormat:@"yyyyMMddHHmmss"];
NSString *numericString = [formatter stringFromDate:date];
long long value = [numericString longLongValue];

しかし、文字列は日付とは何の関係もなく、連結したい数の束のコンテナにすぎないと考えるかもしれません。その場合、不要な文字を削除するだけです。これはより高速です:

NSString *dateString = @"2012-07-16 10:20:25";
NSMutableString *string = [NSMutableString stringWithString:dateString];
[string deleteCharactersInRange:NSMakeRange(16, 1)]; // remove last colon
[string deleteCharactersInRange:NSMakeRange(13, 1)]; // remove first colon
[string deleteCharactersInRange:NSMakeRange(10, 1)]; // remove space
[string deleteCharactersInRange:NSMakeRange(7, 1)];  // remove last hyphen
[string deleteCharactersInRange:NSMakeRange(4, 1)];  // remove first hyphen
long long value = [string longLongValue];
于 2012-07-24T14:28:03.837 に答える
0

1970年からの秒数(または何でも)を使用するなど、他のより正確な回避策を見つける方が良いでしょうが、この方法で行う必要がある場合....

NSDateComponents必要な文字列から各桁を取得します。

NSDateComponents *todayComponents = [gregorian components:(NSWeekdayCalendarUnit |NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit) fromDate:date];
NSInteger day = [todayComponents day];
NSInteger month = [todayComponents month];

上記の例は完全ではありませんが、どのように行われるかを理解できるはずです。

次に、上記のすべての値で形成された整数の文字列を作成する必要があります。たとえば、次のようになります。

NSString *stringDate = [NSString stringWithFormat:@"%i%i",day,month];

次に、それを int 値に変換します。

int finalValue = [stringDate intValue]

私はこれをやったことがありませんが、それが私の最初のアプローチです。

于 2012-07-24T14:16:28.853 に答える