私のプロジェクトでは。私は自分のプロジェクトでユーザーの変更をカレンダーにしたい。ユーザーが日本語カレンダーを選択した場合、日付はプロジェクトで日本語カレンダー形式で表示されます。ユーザーがグレゴリオ暦を選択した場合、日付はグレゴリオ暦の形式で表示されます。だから私は以下のようにクラスファイルを使用しました。ここでNSCalendar currentCalendarが動作しません
はここmyclass.h
#import <Foundation/Foundation.h>
@interface util : NSObject
+ (NSString *)getTrimedString:(NSString *)str;
+(NSDate*)convertStringToDate:(NSString*)baseString;
+(NSString*)dateToYMD:(NSDate*)date;
+(NSString*)dateToMDHM:(NSDate*)date;
+(NSString*)dateToYMDHM:(NSDate*)date;
+(NSString*)dateToHM:(NSDate*)date;
+(NSString*)convertStringToMDHM:(NSString*)baseString;
+(UILabel*)createWorkLblWord:(NSString*)baseText;
+(UILabel*)createWorkLblWord:(NSString*)baseText widths:(NSInteger)width fontSize:(NSInteger)size;
+(float)systemVersionFloat;
@end
+(NSString*)dateToYMDHM:(NSDate*)date{
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
はmyclass.m
#import "util.h"
@implementation util
+(NSString*)dateToYMDHM:(NSDate*)date{
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
NSCalendar *usercalendar = [NSCalendar currentCalendar];
[formatter setCalendar:usercalendar];
NSLog(@"Current Auto Calendar : %@",[[NSCalendar autoupdatingCurrentCalendar] calendarIdentifier]);
NSLog(@"current calendar: %@", [[NSCalendar currentCalendar] calendarIdentifier]);
[formatter setDateFormat:@"yyyy/MM/dd\nH:mm"];
return [formatter stringFromDate:date];
}
ですが、結果はグレゴリオ暦の日付形式を示しています。ユーザーが日本語カレンダーまたは仏教カレンダーを選択した場合でも、私のプロジェクトはグレゴリオ暦の日付のみを表示します。これをどうすれば解決できますか?代わりに、識別子を使用してみてください[NSCalendar currentCalendar]
を使用しての
はい。はい。しかし、私たちの上司は、ユーザーの好みのカレンダーを使用したい。彼は、[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]のようにカレンダーをデフォルトに設定したくありません。 –
ユーザーは設定アプリケーションでカレンダーを変更しますか? –
電話機の設定でカレンダーを日本語に変更します。私たちのアプリでは、[NSCalendar currentCalendar]を使って電話機の設定カレンダーを呼び出しました。しかし、日付形式はグレゴリオ暦の形式しか表示しません。 例:携帯電話の設定でカレンダーを日本語に設定します。アプリ内の日付は0028/11/15と表示されます。もう1つの例:私は電話の設定でグレゴリオ暦を選択します。アプリ内の日付は2016/11/15と表示されます。 –