首页 > 解决方案 > 如何将此日期格式转换为我们在objective-c中的常规日期

问题描述

我有以下格式的日期

11/03/2562 BE, 21:45:57
14/03/2562 BE, 10:42:05
14/03/2562 BE, 21:12:14

我想将这些日期转换为当前的常规日期格式。NSDateFormatter对于上述日期字符串,objective-c 中的值应该是多少?

标签: iosobjective-cdatensdateformatter

解决方案


您必须创建两种格式化程序 - 一种用于将佛教日期字符串转换为 NSDate,另一种用于将 NSDate 转换为公历日期字符串

'- 用于转义日期格式字符串中的符号

    NSString *buddhistString = @"11/03/2562 BE, 21:45:57";

    NSDateFormatter *buddhistFormatter = [[NSDateFormatter alloc] init];
    buddhistFormatter.dateFormat = @"dd/MM/yyyy GG, HH:mm:ss";
    buddhistFormatter.calendar = [NSCalendar calendarWithIdentifier:NSCalendarIdentifierBuddhist];

    NSDateFormatter *gregorianFormatter = [[NSDateFormatter alloc] init];
    gregorianFormatter.dateFormat = @"dd/MM/yyyy, HH:mm:ss"; // Or other format you'd like
    gregorianFormatter.calendar = [NSCalendar calendarWithIdentifier:NSCalendarIdentifierGregorian];

    NSDate *date = [buddhistFormatter dateFromString:buddhistString];
    NSString *gregorianString = [gregorianFormatter stringFromDate:date];

    NSLog(@"%@", gregorianString);
    // prints 11/03/2019, 21:45:57

推荐阅读