এনএসডিট থেকে ঘন্টা এবং মিনিট কীভাবে পাব?


113

আমার আবেদনে আমার ঘন্টা এবং মিনিট আলাদাভাবে পেতে হবে:

NSString *currentHour=[string1 substringWithRange: NSMakeRange(0,2)];
        int currentHourInNumber=[currentHour intValue];

বিবেচনা করুন string1ধারণ করে 11:59:13 AMযা datepicker থেকে আসছে।

এখানে যদি আমি উপরের কোড ব্যবহার করি তবে এটি 9 এর চেয়ে বেশি হলে ঘন্টা পাওয়া ঠিক আছে অন্যথায় আমাকে NSMakeRange(0,1)1 থেকে 9 এর মধ্যে ঘন্টা পেতে পরিবর্তন করতে হবে।

ঘন্টা, মিনিট, ইত্যাদি পাওয়ার জন্য কি কোনও পদ্ধতি আছে?

অগ্রিম ধন্যবাদ, আমাকে নমুনা কোড সরবরাহ করুন।


উত্তর:


262

একটি ব্যবহার করুন NSDateFormatter রূপান্তর করতে string1একটি মধ্যে NSDate, তারপর প্রয়োজনীয় পেতে NSDateComponents :

ওবজ-সি :

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"<your date format goes here"];
NSDate *date = [dateFormatter dateFromString:string1];
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [calendar components:(NSCalendarUnitHour | NSCalendarUnitMinute) fromDate:date];
NSInteger hour = [components hour];
NSInteger minute = [components minute];

সুইফট 1 এবং 2 :

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "Your date Format"
let date = dateFormatter.dateFromString(string1)
let calendar = NSCalendar.currentCalendar()
let comp = calendar.components([.Hour, .Minute], fromDate: date)
let hour = comp.hour
let minute = comp.minute

সুইফট 3 :

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "Your date Format"
let date = dateFormatter.date(from: string1)
let calendar = Calendar.current
let comp = calendar.dateComponents([.hour, .minute], from: date)
let hour = comp.hour
let minute = comp.minute

তারিখের ফর্ম্যাট সম্পর্কে আরও তথ্য অফিসিয়াল ইউনিকোড সাইটে


হাই আরও একটি সন্দেহ, কী এনএসডিটে সময়, মিনিট পরিবর্তন করা সম্ভব
ম্যাক

ঘন্টা এবং মিনিট পরিবর্তন করতে, সম্ভবত এনএসডিট এর + তারিখ উইথটাইমIntervalSinceReferences তারিখ দেখুন:। এই পদ্ধতিটি আপনাকে তারিখে নির্দিষ্ট পরিমাণ সেকেন্ড যুক্ত করতে দেয় (এবং একটি নতুন তারিখ ফিরিয়ে দেয়)।
থমাস মুলার

আইওএসে, "উপাদানগুলি" কেবল সংস্করণ 8.0 থেকে পাওয়া যায়। <8.0 সম্পর্কে কি?
রুয়ান্টাভন

2
@ রুহাটাভান বিকাশকারী.এপল.লাইবারি / আইওএস / ডকুমেন্টেশন / কোকোয়া / রেফারেন্স / :: "আইওএস ২.০ এবং তার পরে পাওয়া যাবে।" আমি অবশ্যই কয়েক বছর ধরে এই এপিআই ব্যবহার করেছি।
থমাস মুলার

আমি অনুমান করি এটি এক্সকোডের একটি বাগ, যেহেতু এটি 8.0 হওয়ার কথা বলেছিল। আমার উত্স বা অনলাইন ডক্স পরীক্ষা করা উচিত ছিল। আমার খারাপ।
রুয়ান্টাভন

52

আপনার যদি কেবল স্ট্রিং হিসাবে উপস্থাপনের জন্য এটির প্রয়োজন হয় তবে নীচের কোডটি আরও সহজ

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"HH:mm"];

NSString *startTimeString = [formatter stringFromDate:startTimePicker.date];

45

এটি আমার কাছে মনে হয় প্রশ্নটি পরে কী, বিন্যাসের প্রয়োজন নেই:

NSDate *date = [NSDate date];
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [calendar components:(NSCalendarUnitHour | NSCalendarUnitMinute) fromDate:date];
NSInteger hour = [components hour];
NSInteger minute = [components minute];

1
এএম বা প্রধানমন্ত্রী কীভাবে পাবেন?
ইয়ালামান্ডারও


4

আপনি যদি সি লাইব্রেরি ব্যবহার করেন তবে এটি করা যেতে পারে:

time_t t;
struct tm * timeinfo;

time (&t);
timeinfo = localtime (&t);

NSLog(@"Hour: %d Minutes: %d", timeinfo->tm_hour, timeinfo->tm_min);

এবং সুইফট ব্যবহার:

var t = time_t()
time(&t)
let x = localtime(&t)

println("Hour: \(x.memory.tm_hour) Minutes: \(x.memory.tm_min)")

আরও দিকনির্দেশনার জন্য দেখুন: http://www.cplsplus.com/references/ctime/localtime/


4

IOS 8 এ সঙ্গে, অ্যাপল পুনরুদ্ধার করতে একটি সাহায্যকারী পদ্ধতি চালু hour, minute, secondএবং nanosecondএকটি NSDate বস্তু থেকে।

উদ্দেশ্য গ

NSDate *date = [NSDate currentDate];
NSInteger hour = 0;
NSInteger minute = 0;
NSCalendar *currentCalendar = [NSCalendar currentCalendar];
[currentCalendar getHour:&hour minute:&minute second:NULL nanosecond:NULL fromDate:date];
NSLog(@"the hour is %ld and minute is %ld", (long)hour, (long)minute);

দ্রুতগতি

let date = NSDate()
var hour = 0
var minute = 0
let calendar = NSCalendar.currentCalendar()
if #available(iOS 8.0, *) {
    calendar.getHour(&hour, minute: &minute, second: nil, nanosecond: nil, fromDate: date)
    print("the hour is \(hour) and minute is \(minute)")
}

3

সুইফট ২.০

আপনি একটি তারিখ থেকে ঘন্টা এবং মিনিট পেতে নিম্নলিখিত জিনিস করতে পারেন:

let dateFromat = NSDateFormatter()
dateFromat.dateFormat = "hh:mm a"
let date = dateFromat.dateFromString(string1) // In your case its string1
print(date) // you will get - 11:59 AM

ব্যবহার করুন NSDateFormatter সংক্ষিপ্ত বিবরণের জন্য।
yo2bh

2

সুইফট ২.০

    let dateNow = NSDate()
    let calendar = NSCalendar.currentCalendar()
    let hour = calendar.component(NSCalendarUnit.Hour, fromDate: dateNow)
    let minute = calendar.component(NSCalendarUnit.Minute, fromDate: dateNow)
    print(String(hour))
    print(String(minute))

মুদ্রণ বিবৃতিতে স্ট্রিংয়ের জন্য নিক্ষেপটি নোট করুন, আপনি সহজেই এই মানটি ভেরিয়েবলগুলিতে নির্ধারণ করতে পারেন:

var hoursString = String(hour)
var minutesString = String(minute)

তারপরে আপনি এর মতো মানগুলি সংযুক্ত করতে পারেন:

var compoundString = "\(hour):\(minute)"
print(compoundString)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.