16

ヘブライ語と英語の 2 つのテキストがあります。

最初のテキストには、ヘブライ語の日付があります。

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    NSLocale *hebrew = [[NSLocale alloc] initWithLocaleIdentifier:@"he_IL"]; // Hebrew

    [dateFormatter setDateFormat:@"yyyy-MM-dd'T'hh:mm:ss.SSSZ"];

    NSDate *date = [dateFormatter dateFromString:model.startDate];

    NSLog(@"%@", date);

    [dateFormatter setDateFormat:@"EEEE,dd.MM.yyyy"];
    dateFormatter.locale = hebrew;
    NSString *strDate = [dateFormatter stringFromDate:date];

および開始日は次のとおりです。

一方、NSString オブジェクト timeForRequest に テキスト07: 00-16: 00があります

私が必要とする形式は 16:00 - 07:00

そして、次のコードで同じことをしようとすると

[NSString stringWithFormat:@"%@ | %@",strDate,timeForRequest]

次のように表示されます。07:00~16:00

時刻が正しくないことに注意してください。この有線の状況から抜け出すのを手伝ってください。

前もって感謝します。

4

2 に答える 2

4

ここでの問題は、strDate のヘブライ語の日付が、右から左に表示されるようにする Unicode 文字を持っていることだと確信しています。これは、timeForResponse で「通常の」左から右への文字列と組み合わせると混乱を引き起こします。日付フォーマッタは、ヘブライ語ロケールからそれを取得しています。

これを試して:

  1. 日付形式文字列を次のように変更します

[dateFormatter setDateFormat:@"dd.MM.yyyy,EEEE"];

  1. フォーマットを使用して文字列を次のように変更します

NSString *result = [NSString stringWithFormat:@"\u200E%@ | %@", timeForRequest, strDate];

0x200E Unicode 文字は表示されませんが、レンダリングは左から右のモードに戻ります。

上記の後、これは私が得ている出力です:

07: 00-16: 00 | 17.08.2016,יום רביעי

于 2016-08-17T17:32:48.327 に答える