<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های gharary</title><link>https://virgool.ir/feed/@gharary</link><description>یک توسعه دهنده iOS.</description><language>fa</language><pubDate>2026-11-11 04:18:47</pubDate><image><url>https://files.virgool.ir/upload/users/3558/avatar/ivCOik.png</url><title>gharary</title><link>https://virgool.ir/@gharary</link></image><item><title>تبدیل تاریخ میلادی به شمسی در Swift 4</title><link>https://virgool.ir/@gharary/gregorian-to-persian-swift4-rqsl8o37shwh</link><description>سلام. توی یکی از پروژه هایی که کار میکردم، نیاز بود که تاریخی رو که از سرور دریافت میکنم رو به شمسی تبدیل کنم. و هرچه توی سایت های مختلف از جمله StackoverFlow و غیره سرچ کردم برای فارسی به حداقل نتیجه رسیدم به طوری که کارم رو راه ننداخت.تصمیم گرفتم با آزمون و خطا به نتیجه برسم که در آخر هم رسیدم.اولین قدم این هست که فیلد تاریخ رو از سرور بگیریم و اون رو تبدیل به String کنیم.let subStrDate = dateUnix.prefix(16)let subStr = String(subStrDate)بعد از اون باید یه متغیر از نوع dateFotmat تعریف کنیم و در اون فرمت تاریخی که میخوایم به عنوان خروجی بگیریم رو مشخص کنیم. let dateFormatter = DateFormatter()dateFormatter.dateFormat = &#34;YYYY-MM-dd HH:mm&#34;dateFormatter.calendar = Calendar(identifier: .gregorian)let dateInGrogrian = dateFormatter.date(from: subStr)و بعد از اون باید یه تقویم تعریف کنیم و تاریخی که بدست اوردیم رو داخل اون قرار بدیم و بعد از اون میتونیم سال، ماه، و روز رو ازش بگیریم.let calender = NSCalendar(calendarIdentifier: NSCalendar.Identifier.persian)let components = calender?.components(NSCalendar.Unit(rawValue: UInt.max), from: dateInGrogrian!)let year =  components!.yearlet month = components!.monthlet day = components!.daylet hour = components?.hourlet minute = components?.minuteو در نهایت میشه ازش استفاده کرد یا اون رو به کاربر نشون داد.dateFormatter.calendar = Calendar(identifier: .persian)dateFormatter.dateFormat = &#34;YYYY-MM-dd HH:mm&#34;let datePersian = &#34;\(String(describing: year!))/\(String(describing: month!))/\(String(describing: day!)) \(String(describing: hour!)):\(String(describing: minute!))&#34;اگر این مشکل رو شما هم داشتید، امیدوارم بشه با این روش حلش کرد. موفق باشید.</description><category>gharary</category><author>gharary</author><pubDate>Fri, 26 Jan 2018 08:04:55 +0330</pubDate></item></channel></rss>