{"id":112,"date":"2025-10-04T09:20:34","date_gmt":"2025-10-04T00:20:34","guid":{"rendered":"https:\/\/devserver.kr\/blog\/?p=112"},"modified":"2025-10-04T09:29:44","modified_gmt":"2025-10-04T00:29:44","slug":"ios-calendar-date","status":"publish","type":"post","link":"https:\/\/devserver.kr\/blog\/ios\/ios-calendar-date\/","title":{"rendered":"ios Calendar, Date"},"content":{"rendered":"\n<div class=\"wp-block-jetpack-markdown\"><h3>Foundation &gt; Calendar<\/h3>\n<p>struct<\/p>\n<h3>Calendar.Identifier -&gt;<\/h3>\n<p>gregorian &lt;- enum type\uc774\ub2e4.<\/p>\n<p>Calendar.current \/\/ \ud604\uc7ac \uc0ac\uc6a9\uc790 \uce7c\ub80c\ub354<\/p>\n<p>firstWeekday \/\/ \ub2ec\ub825\uc5d0\uc11c \uc8fc\uac00 \uc2dc\uc791\ub418\ub294 \uc694\uc77c 1~7 : 1 \uc77c\uc694\uc77c 2 \uc6d4\uc694\uc77c \u2026<\/p>\n<h3>Calendar<\/h3>\n<pre><code class=\"language-swift\">var calendar = Calendar.current\nlet dateFormatter = DateFormatter()\n\ninitDate = calendar.date(byAdding: .weekOfYear, value: 1 - currentPage, to: startDate, wrappingComponents: false)\n\nvar dc = DateComponents()\ndc = calendar.dateComponents([.year, .month], from: initDate!)\ninitDate = calendar.date(from: dc)\n<\/code><\/pre>\n<h3>Date()<\/h3>\n<p>Date(timeIntervalSince1970: xxxx) -&gt; Date?<\/p>\n<p>let dateString = \u201c1974-04-13 12:34:56\u201d;\nlet formatter = DateFormatter()\nformatter.dateFormat = \u201cYYYY-MM-dd HH:mm:ss\u201d\nformatter.date(from: dateString)<\/p>\n<h3>DateComponents\ub85c Date \uac1d\uccb4 \ub9cc\ub4dc\ub294 \ubc95<\/h3>\n<pre><code class=\"language-swift\">var comp = DateComponents()\ncomp.year = self.date?.year\ncomp.month = self.date?.month\ncomp.day = dayFromIndexPath(indexPath)\n        \nlet d = Calendar.current.date(from: comp)\n<\/code><\/pre>\n<h3>Calendar Locale<\/h3>\n<pre><code class=\"language-swift\">var cal = Calendar.current\nprint(&quot;\\(cal.locale!)&quot;)\n        \nlet localeID = Locale.preferredLanguages.first\nlet deviceLocale = Locale(identifier: localeID!)\nlet langCode = (Locale(identifier: localeID!).languageCode)!\nprint(&quot;\\(localeID) \\(deviceLocale)&quot;)\n        \ncal.locale = deviceLocale\nlet weekDaySymbols = cal.weekdaySymbols\nprint(&quot;\\(weekDaySymbols)&quot;)\n        \nlet shortWeekDaySymbols = cal.shortWeekdaySymbols\nprint(&quot;\\(shortWeekDaySymbols)&quot;)\n<\/code><\/pre>\n<\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[4,7],"tags":[],"class_list":["post-112","post","type-post","status-publish","format-standard","hentry","category-ios","category-swift"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/devserver.kr\/blog\/wp-json\/wp\/v2\/posts\/112","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devserver.kr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devserver.kr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devserver.kr\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/devserver.kr\/blog\/wp-json\/wp\/v2\/comments?post=112"}],"version-history":[{"count":3,"href":"https:\/\/devserver.kr\/blog\/wp-json\/wp\/v2\/posts\/112\/revisions"}],"predecessor-version":[{"id":119,"href":"https:\/\/devserver.kr\/blog\/wp-json\/wp\/v2\/posts\/112\/revisions\/119"}],"wp:attachment":[{"href":"https:\/\/devserver.kr\/blog\/wp-json\/wp\/v2\/media?parent=112"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devserver.kr\/blog\/wp-json\/wp\/v2\/categories?post=112"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devserver.kr\/blog\/wp-json\/wp\/v2\/tags?post=112"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}