DateFormatter: মূল ধারণা, তারিখ ফর্ম্যাটিং এবং স্থানীয়করণ

লেখক: IT Sectr প্রকাশিত: 2026-07-12 পড়ার সময়: 7 মিনিট

DateFormatter হল একটি Foundation ক্লাস যা Date অবজেক্ট এবং তাদের স্ট্রিং উপস্থাপনের মধ্যে দ্বিমুখী রূপান্তরের জন্য ডিজাইন করা হয়েছে। ক্লাসটি ব্যবহারকারীর লোকেল, সময় অঞ্চল এবং ক্যালেন্ডার বিবেচনা করে, বিশ্বের যেকোনো অঞ্চলে তারিখের সঠিক প্রদর্শন নিশ্চিত করে। Apple Developer Documentation (2025) অনুসারে, DateFormatter চারটি পূর্বনির্ধারিত তারিখ এবং সময় স্টাইল সমর্থন করে, পাশাপাশি একটি টেমপ্লেট স্ট্রিংয়ের মাধ্যমে সম্পূর্ণ কাস্টম ফর্ম্যাটও সমর্থন করে। DateFormatter ছাড়া একটি আন্তর্জাতিকীকৃত অ্যাপ্লিকেশনে ব্যবহারকারীকে সঠিকভাবে তারিখ প্রদর্শন করা অসম্ভব।

মূল বিষয়

  • DateFormatter — লোকেল এবং সময় অঞ্চল সমর্থন সহ Date-কে স্ট্রিং-এ এবং পিছনে রূপান্তরের জন্য একটি ক্লাস।
  • dateStyle এবং timeStyle — দ্রুত ফর্ম্যাটিংয়ের জন্য পূর্বনির্ধারিত স্টাইল (.short, .medium, .long, .full)।
  • dateFormat — Unicode LDML চিহ্নের মাধ্যমে নির্দিষ্ট কাস্টম ফর্ম্যাটের জন্য একটি টেমপ্লেট স্ট্রিং।
  • Locale এবং TimeZone — ফর্ম্যাটারের বৈশিষ্ট্য যা আঞ্চলিক প্রদর্শন এবং সময় অঞ্চল নির্ধারণ করে।
  • ISO8601DateFormatter — API-তে সিরিয়ালাইজ করার সময় ISO 8601 ফর্ম্যাটের জন্য একটি দ্রুত বিকল্প।

DateFormatter কী?

DateFormatter হল Foundation ফ্রেমওয়ার্কের একটি ক্লাস যা Date এবং স্ট্রিং-এর মধ্যে দ্বিমুখী রূপান্তর বাস্তবায়ন করে। এটি প্রথম OpenStep-এ NSDateFormatter হিসেবে আবির্ভূত হয় এবং তারপর থেকে সমস্ত Apple প্ল্যাটফর্মে তারিখ ফর্ম্যাটিংয়ের প্রাথমিক টুল হিসেবে রয়ে গেছে। ক্লাসটি Formatter থেকে উত্তরাধিকার সূত্রে প্রাপ্ত এবং স্থানীয়কৃত তারিখ প্রদর্শনের জন্য একটি সুবিধাজনক API প্রদান করে।

DateFormatter Unicode LDML প্যাটার্নের ভিত্তিতে কাজ করে — যেগুলি ICU (International Components for Unicode)-তে ব্যবহৃত হয়। প্যাটার্নটি dateFormat বৈশিষ্ট্যের মাধ্যমে সেট করা হয়, যেখানে চিহ্ন y, M, d, H, m, s বছর, মাস, দিন, ঘন্টা, মিনিট, সেকেন্ডের সাথে সম্পর্কিত। একটি চিহ্নের পুনরাবৃত্তি ফর্ম্যাট নির্ধারণ করে: "y" — দুই অঙ্কের বছর, "yyyy" — চার অঙ্কের বছর।

DateFormatter তৈরি করা একটি ব্যয়বহুল অপারেশন, কারণ আরম্ভের সময় লোকেল এবং ক্যালেন্ডার ডেটা লোড হয়। Apple প্রতিটি ফর্ম্যাটিং ধরনের জন্য একবার ফর্ম্যাটার তৈরি এবং পুনরায় ব্যবহার করার পরামর্শ দেয়। SwiftUI এবং UIKit-এ, ফর্ম্যাটারগুলি প্রায়ই স্ট্যাটিক বৈশিষ্ট্যে ক্যাশ করা হয় বা প্রথম অ্যাক্সেসে লেজিলি তৈরি করা হয়।

iOS SDK-তে DateFormatter

DateFormatter অনেক iOS সিস্টেম কম্পোনেন্টে ব্যবহৃত হয়। UIDatePicker countDownTimer মোডে তারিখ প্রদর্শনের জন্য অভ্যন্তরীণভাবে DateFormatter ব্যবহার করে। একটি ফর্ম্যাটার সহ TextField স্বয়ংক্রিয়ভাবে ব্যবহারকারীর প্রবেশ করা তারিখগুলি বৈধতা দিতে পারে। Core Data Date টাইপের অ্যাট্রিবিউট সমর্থন করে, কিন্তু তাদের স্ট্রিং উপস্থাপনা সর্বদা DateFormatter-এর মাধ্যমে পরিচালিত হয়।

থ্রেড নিরাপত্তা — DateFormatter থ্রেড-নিরাপদ নয়। বিভিন্ন থ্রেড থেকে ফর্ম্যাটারের বৈশিষ্ট্য পরিবর্তন করা অনির্ধারিত আচরণের দিকে নিয়ে যায়। মাল্টি-থ্রেডেড ব্যবহারের জন্য, প্রতিটি থ্রেডের জন্য আলাদা ফর্ম্যাটার ইনস্ট্যান্স তৈরি করুন বা NSLock বা সিরিয়াল কিউ-এর মাধ্যমে সিঙ্ক্রোনাইজেশন ব্যবহার করুন।

DateFormatter ফর্ম্যাটিং স্টাইল

dateStyle এবং timeStyle তারিখ প্রদর্শন কনফিগার করার সবচেয়ে সহজ উপায়। প্রতিটি স্টাইলের চারটি ভেরিয়েন্ট রয়েছে: .short, .medium, .long, .full। dateStyle এবং timeStyle-এর সংমিশ্রণ তারিখ এবং সময় ফর্ম্যাটের স্বাধীন কনফিগারেশনের অনুমতি দেয়, এবং .none বৈশিষ্ট্য সংশ্লিষ্ট অংশটি নিষ্ক্রিয় করে।

মার্কিন লোকেলের জন্য, .short তারিখটি "7/21/26" হিসেবে ফর্ম্যাট করে এবং রুশ লোকেলের জন্য "21.07.2026" হিসেবে। রুশ লোকেলের জন্য .long স্টাইল "21 জুলাই 2026" আউটপুট করে, এবং .full — "মঙ্গলবার, 21 জুলাই 2026" সপ্তাহের দিন সহ। চারটি স্টাইলই স্বয়ংক্রিয়ভাবে আঞ্চলিক মানগুলির সাথে খাপ খায়, যার মধ্যে উপাদানের ক্রম এবং বিভাজক অন্তর্ভুক্ত।

SFDateFormatter iOS 15+-এ RelativeDateFormatter এবং DateIntervalFormatter-এর মাধ্যমে একটি বিকল্প পদ্ধতি প্রদান করে। RelativeDateFormatter প্রাসঙ্গিক প্রদর্শনের জন্য "আজ", "গতকাল", "3 দিনের মধ্যে" আউটপুট করে। DateIntervalFormatter তারিখের পরিসর প্রদর্শন করে: "21–25 জুলাই 2026" — বুকিং এবং পরিকল্পনার জন্য।

স্টাইলউদাহরণ (ru_RU)উদাহরণ (en_US)
.short21.07.20267/21/26
.medium21 জুলা 2026Jul 21, 2026
.long21 জুলাই 2026July 21, 2026
.fullমঙ্গলবার, 21 জুলাই 2026Tuesday, July 21, 2026

স্টাইলগুলি একত্রিত করার সময়, DateFormatter স্বয়ংক্রিয়ভাবে বিভাজক নির্বাচন করে: .short.date + .short.time-এর জন্য ফলাফল "21.07.2026, 14:30" হতে পারে। .full.date + .full.time-এর জন্য — "মঙ্গলবার, 21 জুলাই 2026, 14:30:00 MSK"। বিভাজক লোকেল দ্বারা পরিচালিত হয়, ডেভেলপার দ্বারা নয় — এটি ব্যবহারকারীর আঞ্চলিক প্রত্যাশার সাথে সম্মতি নিশ্চিত করে।

dateFormat-এর মাধ্যমে কাস্টম ফর্ম্যাট

dateFormat Unicode LDML স্পেসিফিকেশন চিহ্ন ব্যবহার করে একটি নির্বিচারে ফর্ম্যাটিং প্যাটার্ন সেট করার অনুমতি দেয়। এটি প্রদর্শনের উপর সম্পূর্ণ নিয়ন্ত্রণ দেয়: আপনি শুধুমাত্র বছর এবং মাস দেখাতে পারেন, বা তারিখ ছাড়া সপ্তাহের দিন, বা সেকেন্ড ছাড়া সময়। কাস্টম ফর্ম্যাট নির্দিষ্ট ডিজাইনের প্রয়োজনীয়তার জন্য অপরিহার্য।

মূল চিহ্ন — yyyy (বছর: 2026), MM (মাস: 07), dd (দিন: 21), HH (ঘন্টা: 14), mm (মিনিট: 30), ss (সেকেন্ড: 00)। পূর্ণ মাসের নামের জন্য MMMM (জুলাই) ব্যবহার করুন, সংক্ষিপ্তের জন্য — MMM (জুলা)। সপ্তাহের দিন — EEEE (মঙ্গলবার), সংক্ষিপ্ত — E (মঙ্গল)।

dateFormat ব্যবহার করার সময় ফর্ম্যাটারের লোকেল সেট করা গুরুত্বপূর্ণ। যদি লোকেল সেট না করা হয়, ফর্ম্যাটার সিস্টেম লোকেল ব্যবহার করে, যা API-তে একটি নির্দিষ্ট ফর্ম্যাটের জন্য অবাঞ্ছিত হতে পারে। Apple একটি নির্দিষ্ট আন্তঃআঞ্চলিক ফর্ম্যাটের জন্য locale = Locale(identifier: "en_US_POSIX") সেট করার পরামর্শ দেয়, বিশেষ করে সার্ভার প্রতিক্রিয়া থেকে তারিখ পার্স করার সময়।

swift
let formatter = DateFormatter()
formatter.locale = Locale(identifier: "ru_RU")
formatter.dateFormat = "d MMMM yyyy"
let customString = formatter.string(from: Date())
// "21 July 2026"

// কাস্টম স্ট্রিং পার্স করা
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let date = formatter.date(from: "2026-07-21 14:30:00")!

dateFormat-এ ত্রুটি অ্যাপ্লিকেশন ক্র্যাশের সাধারণ কারণগুলির মধ্যে একটি। যদি ফর্ম্যাট স্ট্রিংয়ের সাথে মেলে না, date(from:) মেথড nil ফেরত দেয়। নিরাপদ অপশনাল আনর্যাপিংয়ের জন্য guard let বা ?? ব্যবহার করুন। ফর্ম্যাট বৈধতা দেওয়ার জন্য, এটি সমর্থিত সব ভাষায় পরীক্ষা করুন — কিছু LDML চিহ্ন বিভিন্ন লোকেলে ভিন্নভাবে কাজ করে।

স্থানীয়করণ এবং TimeZone

Locale নির্ধারণ করে কিভাবে মাসের নাম, সপ্তাহের দিনের নাম এবং বিভাজক প্রদর্শিত হয়। DateFormatter ডিফল্টরূপে Locale.current ব্যবহার করে, কিন্তু কিছু পরিস্থিতিতে একটি নির্দিষ্ট লোকেল নির্দিষ্ট করা প্রয়োজন: লগে নির্দিষ্ট ফর্ম্যাটের জন্য en_US_POSIX ব্যবহার করুন, সার্ভারের তারিখের জন্য — সার্ভারের সাথে মেলে এমন লোকেল।

TimeZone বৈশিষ্ট্য প্রদর্শনের জন্য সময় অঞ্চল নির্ধারণ করে। ডিফল্টরূপে সিস্টেম সময় অঞ্চল ব্যবহার করা হয়, কিন্তু আন্তর্জাতিক শ্রোতাদের সাথে অ্যাপ্লিকেশনের জন্য প্রায়ই ব্যবহারকারীর সময় অঞ্চল বা UTC-তে তারিখ প্রদর্শন করা প্রয়োজন। timeZone পরিবর্তন শুধুমাত্র প্রদর্শনকে প্রভাবিত করে — Date মান অপরিবর্তিত থাকে।

একটি গুরুত্বপূর্ণ বৈশিষ্ট্য: যদি DateFormatter একটি স্ট্রিং পার্স করার জন্য ব্যবহার করা হয় এবং স্ট্রিংটিতে সময় অঞ্চল নির্দেশ থাকে (উদাহরণস্বরূপ, UTC-এর জন্য Z সহ "2026-07-21T14:30:00Z"), তাহলে timeZone বৈশিষ্ট্য উপেক্ষা করা হয় — ফর্ম্যাটার স্ট্রিং থেকে সময় অঞ্চল ব্যবহার করে। যদি স্ট্রিংটিতে সময় অঞ্চল অনুপস্থিত থাকে, তাহলে ফর্ম্যাটারের timeZone প্রয়োগ করা হয়।

swift
let formatter = DateFormatter()
formatter.locale = Locale(identifier: "ru_RU")
formatter.timeZone = TimeZone(identifier: "Europe/Moscow")
formatter.dateStyle = .long
formatter.timeStyle = .short

let moscowTime = formatter.string(from: Date())
// "21 July 2026, 14:30"

// স্ট্রিংয়ে সময় অঞ্চল ছাড়া পার্স করা
formatter.timeZone = TimeZone(secondsFromGMT: 0)
formatter.dateFormat = "yyyy-MM-dd HH:mm"
let utcDate = formatter.date(from: "2026-07-21 10:30")!

AutoupdatingCurrentLocale — একটি বিশেষ লোকেল টাইপ যা ব্যবহারকারীর সিস্টেম সেটিংস পরিবর্তন হলে স্বয়ংক্রিয়ভাবে আপডেট হয়। DateFormatter ডিফল্টরূপে এটি সমর্থন করে। যদি অ্যাপ্লিকেশন ব্যাকগ্রাউন্ডে চলাকালীন ব্যবহারকারী সিস্টেম ভাষা পরিবর্তন করে, পরিবর্তনের আগে তৈরি ফর্ম্যাটার পুরানো লোকেল ব্যবহার করতে থাকবে — আপডেট করার জন্য একটি নতুন ইনস্ট্যান্স তৈরি করতে হবে।

ISO8601DateFormatter এবং বিকল্প

ISO8601DateFormatter হল ISO 8601 ফর্ম্যাটে তারিখ নিয়ে কাজ করার জন্য একটি বিশেষায়িত ফর্ম্যাটার। এই ফর্ম্যাটটি REST API, JSON এবং ডেটা বিনিময়ের জন্য ডি ফ্যাক্টো স্ট্যান্ডার্ড। ISO8601DateFormatter DateFormatter-এর তুলনায় উল্লেখযোগ্যভাবে দ্রুত কাজ করে কারণ এটি লোকেলের উপর নির্ভর করে না এবং একটি নির্দিষ্ট পার্সিং গ্রামার ব্যবহার করে।

মূল ফর্ম্যাটার অপশন — .withInternetDateTime (2026-07-21T14:30:00Z), .withFractionalSeconds (মিলিসেকেন্ড যোগ করে), .withTimeZone (সময় অঞ্চল অফসেট অন্তর্ভুক্ত করে)। অপশনগুলি একত্রিত করে আপনি যেকোনো ISO 8601 ভেরিয়েন্ট পেতে পারেন: মিলিসেকেন্ড সহ, সময় অঞ্চল সহ, শুধুমাত্র তারিখ সহ।

JSONEncoder.DateEncodingStrategy সমস্ত Codable মডেলের জন্য বিশ্বব্যাপী তারিখ এনকোডিং কনফিগার করার অনুমতি দেয়। অপশন — .iso8601 (ISO8601DateFormatter ব্যবহার করে), .formatted(DateFormatter), .millisecondsSince1970, .secondsSince1970। কৌশলের পছন্দ সম্পূর্ণ সিরিয়ালাইজেশন লাইফসাইকেলকে প্রভাবিত করে এবং সমস্ত API এন্ডপয়েন্ট জুড়ে সামঞ্জস্যপূর্ণ হওয়া উচিত।

swift
// ISO8601DateFormatter
let isoFormatter = ISO8601DateFormatter()
isoFormatter.formatOptions = [.withInternetDateTime, .withFractionalSeconds]
let isoString = isoFormatter.string(from: Date())
// "2026-07-21T14:30:00.000Z"

// ISO8601 সহ JSONEncoder
let encoder = JSONEncoder()
encoder.dateEncodingStrategy = .iso8601

// বিকল্প: কাস্টম ফর্ম্যাটার সহ JSONEncoder
let customEncoder = JSONEncoder()
customEncoder.dateEncodingStrategy = .formatted(myFormatter)

DateFormatter বনাম ISO8601DateFormatter — API-তে তারিখ সিরিয়ালাইজ এবং পার্স করার জন্য ISO8601DateFormatter বেছে নিন, কারণ এটি DateFormatter-এর থেকে 5-10 গুণ দ্রুত এবং স্থানীয়করণ ত্রুটির জন্য প্রবণ নয়। DateFormatter ব্যবহারকারী ইন্টারফেসের জন্য ছেড়ে দিন যেখানে ব্যবহারকারীর মাতৃভাষায় মাস এবং দিনের নাম সহ স্থানীয়কৃত প্রদর্শন প্রয়োজন।

তারিখ ফর্ম্যাটিং উদাহরণ

আসুন iOS অ্যাপ্লিকেশনে DateFormatter-এর ব্যবহারের বাস্তব পরিস্থিতি দেখি: নিউজ ফিডে তারিখ প্রদর্শন, জন্ম তারিখ প্রবেশ করানো এবং বিভিন্ন সময় অঞ্চলে তারিখ সহ রিপোর্ট রপ্তানি।

তালিকায় খবরের তারিখ প্রদর্শন

RelativeDateFormatter নিউজ ফিডের জন্য সর্বোত্তম। এটি তাজা খবরের জন্য "এইমাত্র", "5 মিনিট আগে", "গতকাল" প্রদর্শন করে এবং পুরানো খবরের জন্য পূর্ণ তারিখে স্যুইচ করে। স্যুইচ থ্রেশহোল্ড ক্যালেন্ডারের মাধ্যমে কনফিগার করা হয়: খবরের জন্য 24 ঘন্টার সীমা ব্যবহার করুন, মেসেঞ্জারের জন্য — এক সপ্তাহ।

swift
func formatRelativeDate(_ date: Date) -> String {
    let relative = RelativeDateFormatter()
    relative.unitsStyle = .full

    let formatter = DateFormatter()
    formatter.dateStyle = .medium
    formatter.timeStyle = .short

    let daysDiff = Calendar.current.dateComponents(
        [.day], from: date, to: Date()
    ).day ?? 0

    return daysDiff < 1
        ? relative.localizedString(for: date, relativeTo: Date())
        : formatter.string(from: date)
}

জন্ম তারিখ প্রবেশ করানো — আরেকটি সাধারণ পরিস্থিতি। DateFormatter একটি নির্দিষ্ট dateFormat "dd.MM.yyyy" এবং locale "ru_RU" দিয়ে কনফিগার করা হয়। প্রবেশ করানো স্ট্রিং পার্স করার সময় সম্ভাব্য ত্রুটিগুলি পরিচালনা করা গুরুত্বপূর্ণ: ফর্ম্যাটার অবৈধ স্ট্রিংয়ের জন্য nil ফেরত দেয়। সফল পার্সিংয়ের পরে, তারিখটি গ্রহণযোগ্য সীমার মধ্যে আছে কিনা তা পরীক্ষা করা হয় — 1900-এর আগে নয়, আজকের পরে নয়।

তারিখ সহ রিপোর্ট রপ্তানি ব্যবহারকারীর লোকেল থেকে স্বাধীন একটি নির্দিষ্ট ফর্ম্যাট প্রয়োজন। locale en_US_POSIX এবং সময় অঞ্চল UTC সহ dateFormat "yyyy-MM-dd HH:mm:ss" ব্যবহার করুন। এই পদ্ধতি নিশ্চিত করে যে ফাইলটি সিস্টেমের আঞ্চলিক সেটিংস নির্বিশেষে যেকোনো দেশে সঠিকভাবে খুলবে।

পরিস্থিতিফর্ম্যাটারমূল সেটিং
নিউজ ফিডRelativeDateFormatterunitsStyle = .full
তারিখ ইনপুটDateFormatterdateFormat + ফলব্যাক
API সিরিয়ালাইজেশনISO8601DateFormatterwithInternetDateTime
রিপোর্ট রপ্তানিDateFormatteren_US_POSIX + UTC

প্রায়শই জিজ্ঞাসিত প্রশ্ন

কেন DateFormatter একটি বৈধ স্ট্রিংয়ের জন্য nil ফেরত দেয়?

সবচেয়ে সাধারণ কারণ — dateFormat এবং স্ট্রিং ফর্ম্যাটের মধ্যে অমিল। উদাহরণস্বরূপ, ফর্ম্যাট "dd.MM.yyyy" স্ট্রিং "2026-07-21" পার্স করবে না। দ্বিতীয় কারণ — লোকেল অমিল: স্ট্রিং "July 21, 2026" ru_RU লোকেলের সাথে পার্স হবে না। তৃতীয় — LDML চিহ্নে টাইপো: yyyy ব্যবহার করুন, YYYY নয় (ভিন্ন অর্থ)।

প্রত্যেক কলের জন্য কি নতুন DateFormatter তৈরি করা উচিত?

না। DateFormatter একটি ভারী অবজেক্ট, এর আরম্ভে লোকেল ডেটা লোড করা অন্তর্ভুক্ত। প্রতি ফর্ম্যাটিং টাইপের জন্য একটি ইনস্ট্যান্স তৈরি করুন এবং এটি পুনরায় ব্যবহার করুন। মাল্টি-থ্রেডেড পরিবেশে, থ্রেড-লোকাল স্টোরেজ বা সিরিয়াল কিউ সহ ফর্ম্যাটার পুল ব্যবহার করুন সিঙ্ক্রোনাইজেশনের জন্য।

DateFormatter কীভাবে RelativeDateFormatter থেকে আলাদা?

DateFormatter একটি পরম তারিখ প্রদর্শন করে (21 জুলাই 2026), যেখানে RelativeDateFormatter একটি আপেক্ষিক তারিখ প্রদর্শন করে (আজ, গতকাল, 3 দিনের মধ্যে)। RelativeDateFormatter iOS 15+-এ চালু করা হয়েছিল এবং একই LDML টেমপ্লেট ব্যবহার করে কিন্তু স্বয়ংক্রিয়ভাবে আপেক্ষিক প্রদর্শন নির্বাচন করে।

API থেকে সময় অঞ্চল ছাড়া তারিখগুলি কীভাবে পরিচালনা করবেন?

পার্স করার আগে ফর্ম্যাটারের timeZone UTC-তে সেট করুন। যদি সার্ভার সময় অঞ্চল নির্দেশ ছাড়া স্থানীয় সময়ে তারিখ ফেরত দেয়, API স্পেসিফিকেশন পরীক্ষা করুন — সম্ভবত UTC বোঝানো হয়েছে। শেষে Z সহ ISO 8601-এর জন্য, timeZone-এর প্রয়োজন নেই — ফর্ম্যাটার স্ট্রিং থেকে অফসেট পার্স করে।

কিভাবে DateFormatter-কে থ্রেড-নিরাপদ করবেন?

সিঙ্ক্রোনাইজেশন ছাড়া বিভিন্ন থ্রেড থেকে একটি ইনস্ট্যান্স ব্যবহার করবেন না। প্রতিটি থ্রেডে একটি নতুন ইনস্ট্যান্স তৈরি করুন বা স্টোরেজের জন্য Thread.current.threadDictionary ব্যবহার করুন। একটি বিকল্প হল string(from:) এবং date(from:)-এর সময়কালের জন্য লকিং সহ NSLock।

সারসংক্ষেপ

  • DateFormatter — লোকেল, সময় অঞ্চল এবং ক্যালেন্ডার সমর্থন সহ Date-কে স্ট্রিং-এ এবং পিছনে রূপান্তরের জন্য একটি Foundation ক্লাস।
  • পূর্বনির্ধারিত স্টাইল dateStyle এবং timeStyle .short, .medium, .long, .full ভেরিয়েন্ট সহ বেশিরভাগ UI পরিস্থিতি কভার করে।
  • কাস্টম dateFormat LDML চিহ্নের মাধ্যমে ফর্ম্যাটের উপর সম্পূর্ণ নিয়ন্ত্রণ দেয় কিন্তু স্থানীয়করণের সাথে সতর্কতা প্রয়োজন।
  • Locale এবং TimeZone — সঠিক প্রদর্শনের জন্য প্রয়োজনীয় বৈশিষ্ট্য: UI-এর জন্য — সিস্টেম লোকেল, API-এর জন্য — en_US_POSIX এবং UTC।
  • ISO8601DateFormatter — গতি এবং স্থিতিশীলতার কারণে API-তে তারিখ সিরিয়ালাইজেশনের জন্য পছন্দের বিকল্প।
  • DateFormatter থ্রেড-নিরাপদ নয় — প্রতিটি থ্রেডের জন্য আলাদা ইনস্ট্যান্স ব্যবহার করুন বা অ্যাক্সেস সিঙ্ক্রোনাইজ করুন।
  • RelativeDateFormatter (iOS 15+) — নিউজ ফিড এবং মেসেঞ্জারে আপেক্ষিক তারিখ প্রদর্শনের জন্য সর্বোত্তম সমাধান।

আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব

IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।

প্রকল্প নিয়ে আলোচনা করুন

আরও পড়ুন