{"id":7071,"date":"2026-09-24T17:09:07","date_gmt":"2026-09-24T13:39:07","guid":{"rendered":"https:\/\/parmin.cloud\/blog\/?p=7071"},"modified":"2026-09-24T17:09:07","modified_gmt":"2026-09-24T13:39:07","slug":"simpledateformat-%d9%88-dateformat-%d8%af%d8%b1-%d8%ac%d8%a7%d9%88%d8%a7-%d8%b1%d8%a7%d9%87%d9%86%d9%85%d8%a7%db%8c-%da%a9%d8%a7%d9%85%d9%84","status":"publish","type":"post","link":"https:\/\/parmin.cloud\/blog\/simpledateformat-%d9%88-dateformat-%d8%af%d8%b1-%d8%ac%d8%a7%d9%88%d8%a7-%d8%b1%d8%a7%d9%87%d9%86%d9%85%d8%a7%db%8c-%da%a9%d8%a7%d9%85%d9%84\/","title":{"rendered":"SimpleDateFormat \u0648 DateFormat \u062f\u0631 \u062c\u0627\u0648\u0627: \u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u06a9\u0627\u0645\u0644"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">\u0645\u0642\u062f\u0645\u0647<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">SimpleDateFormat \u0645\u0642\u0627\u062f\u06cc\u0631 java.util.Date \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0631\u0634\u062a\u0647\u200c\u0647\u0627\u06cc Pattern \u0633\u0641\u0627\u0631\u0634\u06cc Format \u0648 Parse \u0645\u06cc\u200c\u06a9\u0646\u062f\u061b \u0648 DateFormat \u0647\u0645 API \u067e\u0627\u06cc\u0647 \u0627\u0646\u062a\u0632\u0627\u0639\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc Format \u06a9\u0631\u062f\u0646 \u0622\u06af\u0627\u0647-\u0627\u0632-Locale\u0650 \u062a\u0627\u0631\u06cc\u062e \u0648 \u0632\u0645\u0627\u0646 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u0632 \u0627\u06cc\u0646 API\u0647\u0627 \u0648\u0642\u062a\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u06a9\u062f Legacy \u062c\u0627\u0648\u0627 \u0631\u0627 \u0646\u06af\u0647 \u0645\u06cc\u200c\u062f\u0627\u0631\u06cc\u062f \u06a9\u0647 \u0647\u0645\u0686\u0646\u0627\u0646 \u0628\u0647 java.util.Date \u0648\u0627\u0628\u0633\u062a\u0647 \u0627\u0633\u062a\u061b \u0628\u0631\u0627\u06cc \u06a9\u062f \u062c\u062f\u06cc\u062f\u060c DateTimeFormatter \u0627\u0632 API \u062a\u0627\u0631\u06cc\u062e\/\u0632\u0645\u0627\u0646 \u062c\u0627\u0648\u0627 \u06f8+ \u0631\u0627 \u062a\u0631\u062c\u06cc\u062d \u062f\u0647\u06cc\u062f\u2014\u0686\u0648\u0646 SimpleDateFormat \u0627\u0645\u0646-\u0628\u0631\u0627\u06cc-Thread \u0646\u06cc\u0633\u062a.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0646\u0634\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f \u0686\u0637\u0648\u0631 \u0627\u0632 DateFormat \u0648 SimpleDateFormat \u0628\u0631\u0627\u06cc Format \u06a9\u0631\u062f\u0646\u060c Parse \u06a9\u0631\u062f\u0646\u060c \u062a\u0628\u062f\u06cc\u0644 Timezone \u0648 \u062e\u0631\u0648\u062c\u06cc \u062e\u0627\u0635-Locale \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f. \u0647\u0645\u200c\u0686\u0646\u06cc\u0646 \u0627\u0639\u062a\u0628\u0627\u0631\u0633\u0646\u062c\u06cc \u0633\u062e\u062a\u200c\u06af\u06cc\u0631\u0627\u0646\u0647 \u0628\u0627 setLenient(false)\u060c \u0631\u0627\u0647\u200c\u062d\u0644\u200c\u0647\u0627\u06cc Thread Safety \u0648 \u0645\u0633\u06cc\u0631 \u0645\u0647\u0627\u062c\u0631\u062a \u0639\u0645\u0644\u06cc \u0628\u0647 DateTimeFormatter \u0631\u0627 \u067e\u0648\u0634\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u0646\u06a9\u0627\u062a \u06a9\u0644\u06cc\u062f\u06cc<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>DateFormat<\/strong>\u060c API \u0627\u0646\u062a\u0632\u0627\u0639\u06cc\u0650 Format \u06a9\u0631\u062f\u0646 \u0627\u0633\u062a\u061b \u0648 <strong>SimpleDateFormat<\/strong> \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0639\u06cc\u0646\u06cc\u0650 \u0622\u0646 \u0628\u0631\u0627\u06cc Format \u0648 Parse \u06a9\u0631\u062f\u0646 \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 Pattern.<\/li>\n\n\n\n<li>SimpleDateFormat\u060c Token\u0647\u0627\u06cc \u063a\u0646\u06cc\u0650 Pattern \u0631\u0627 \u0628\u0631\u0627\u06cc \u0633\u0627\u0644\u200c\u0647\u0627\u060c \u0645\u0627\u0647\u200c\u0647\u0627\u060c \u0631\u0648\u0632\u0647\u0627\u060c \u0641\u06cc\u0644\u062f\u0647\u0627\u06cc \u0632\u0645\u0627\u0646 \u0648 \u062e\u0631\u0648\u062c\u06cc Timezone \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n\n\n\n<li>Instance\u0650 \u0627\u0634\u062a\u0631\u0627\u06a9\u06cc\u0650 SimpleDateFormat \u062f\u0631 \u06a9\u062f Multi-Threaded \u0646\u0627\u0627\u0645\u0646 \u0627\u0633\u062a\u2014\u0686\u0648\u0646 \u0648\u0636\u0639\u06cc\u062a \u062f\u0627\u062e\u0644\u06cc\u200c\u0627\u0634 Mutable \u0627\u0633\u062a.<\/li>\n\n\n\n<li><strong>ThreadLocal<\/strong> \u0648\u0642\u062a\u06cc \u06a9\u062f Legacy \u0646\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0641\u0648\u0631\u0627\u064b Migrate \u0634\u0648\u062f\u060c Instance\u0647\u0627\u06cc Formatter \u0631\u0627 \u0628\u0647\u200c\u0627\u0632\u0627\u06cc \u0647\u0631 Thread \u0627\u06cc\u0632\u0648\u0644\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n\n\n\n<li><strong>DateTimeFormatter<\/strong> Immutable \u0648 \u0627\u0645\u0646-\u0628\u0631\u0627\u06cc-Thread \u0627\u0633\u062a\u061b \u067e\u0633 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u062a\u0631\u062c\u06cc\u062d\u200c\u062f\u0627\u062f\u0647\u200c\u0634\u062f\u0647 \u0628\u0631\u0627\u06cc \u06a9\u062f \u062c\u062f\u06cc\u062f \u062c\u0627\u0648\u0627\u0633\u062a.<\/li>\n\n\n\n<li><code>.parse()<\/code> \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f ParseException \u067e\u0631\u062a\u0627\u0628 \u06a9\u0646\u062f\u061b \u067e\u0633 \u06a9\u062f Parse \u06a9\u0631\u062f\u0646 \u0628\u0627\u06cc\u062f \u0627\u0632 try-catch \u0648 \u067e\u06cc\u0627\u0645\u200c\u0647\u0627\u06cc \u062e\u0637\u0627\u06cc \u0645\u0641\u06cc\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u062f.<\/li>\n\n\n\n<li><strong>setLenient(false)<\/strong> \u0627\u0632 \u062a\u0627\u0631\u06cc\u062e\u200c\u0647\u0627\u06cc \u0646\u0627\u0645\u0639\u062a\u0628\u0631\u06cc \u06a9\u0647 \u0628\u06cc\u200c\u0635\u062f\u0627 \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f\u2014\u0645\u0627\u0646\u0646\u062f 2024-13-45\u2014\u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n\n\n\n<li>\u0647\u0645\u06cc\u0634\u0647 Locale\u0627\u06cc \u0635\u0631\u06cc\u062d \u067e\u0627\u0633 \u0628\u062f\u0647\u06cc\u062f \u062a\u0627 \u0627\u0632 \u062e\u0631\u0648\u062c\u06cc \u0648\u0627\u0628\u0633\u062a\u0647-\u0628\u0647-\u0645\u062d\u06cc\u0637 \u062f\u0631 \u062f\u06cc\u067e\u0644\u0648\u06cc\u200c\u0647\u0627\u06cc \u0633\u0631\u0648\u0631\u06cc \u0627\u062c\u062a\u0646\u0627\u0628 \u0634\u0648\u062f.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">SimpleDateFormat \u062f\u0631 \u062c\u0627\u0648\u0627 \u0686\u06cc\u0633\u062a\u061f<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">SimpleDateFormat\u060c \u0632\u06cc\u0631\u06a9\u0644\u0627\u0633\u0650 DateFormat \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0634\u0645\u0627 \u0627\u062c\u0627\u0632\u0647 \u062a\u0639\u0631\u06cc\u0641 Pattern\u0647\u0627\u06cc \u0635\u0631\u06cc\u062d \u062a\u0627\u0631\u06cc\u062e\/\u0632\u0645\u0627\u0646 \u0628\u0631\u0627\u06cc Format \u0648 Parse \u06a9\u0631\u062f\u0646 \u062f\u0631 \u062c\u0627\u0648\u0627 \u0631\u0627 \u0645\u06cc\u200c\u062f\u0647\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u0632 <strong>DateFormat<\/strong> \u0648\u0642\u062a\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u062e\u0631\u0648\u062c\u06cc \u0645\u0628\u062a\u0646\u06cc-\u0628\u0631-\u0633\u0628\u06a9 \u0648 \u0622\u06af\u0627\u0647-\u0627\u0632-Locale \u0631\u0627\u2014from \u0637\u0631\u06cc\u0642 \u0645\u062a\u062f\u0647\u0627\u06cc Factory\u2014\u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f\u061b \u0648 \u0627\u0632 <strong>SimpleDateFormat<\/strong> \u0648\u0642\u062a\u06cc \u06a9\u0647 \u0628\u0647 \u06a9\u0646\u062a\u0631\u0644 \u062f\u0642\u06cc\u0642\u0650 Pattern\u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f &#8220;dd-MM-yyyy&#8221; \u06cc\u0627 &#8220;yyyy-MM-dd&#8217;T&#8217;HH:mm:ssZ&#8221; \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u062f. \u062b\u0627\u0628\u062a\u200c\u0647\u0627\u06cc \u0633\u0628\u06a9\u0650 DateFormat \u06cc\u0639\u0646\u06cc (SHORT\u060c MEDIUM\u060c LONG\u060c FULL) \u062e\u0631\u0648\u062c\u06cc \u0645\u0646\u0627\u0633\u0628-Locale \u062a\u0648\u0644\u06cc\u062f \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f\u2014\u0628\u062f\u0648\u0646 \u0627\u06cc\u0646\u06a9\u0647 \u0644\u0627\u0632\u0645 \u0628\u0627\u0634\u062f \u062a\u0631\u062a\u06cc\u0628 \u0645\u0646\u0637\u0642\u0647\u200c\u0627\u06cc \u062f\u0642\u06cc\u0642 \u062a\u0627\u0631\u06cc\u062e \u0631\u0627 \u0628\u062f\u0627\u0646\u06cc\u062f\u061b \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0631\u0634\u062a\u0647\u200c\u0647\u0627\u06cc \u0646\u0645\u0627\u06cc\u0634\u06cc \u0631\u0648-\u0628\u0647-\u06a9\u0627\u0631\u0628\u0631\u2014which \u062f\u0631 \u0622\u0646\u200c\u0647\u0627 Format \u0628\u0627\u06cc\u062f \u0627\u0632 \u0642\u0631\u0627\u0631\u062f\u0627\u062f\u0647\u0627\u06cc Locale \u06a9\u0627\u0631\u0628\u0631 \u067e\u06cc\u0631\u0648\u06cc \u06a9\u0646\u062f\u2014\u0645\u0641\u06cc\u062f \u0627\u0633\u062a. \u0627\u0632 SimpleDateFormat \u0648\u0642\u062a\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u062e\u0631\u0648\u062c\u06cc\u0650 Format \u0628\u0627 \u0627\u0644\u0632\u0627\u0645 \u0628\u06cc\u0631\u0648\u0646\u06cc\u200c\u0627\u06cc \u0645\u0627\u0646\u0646\u062f \u0642\u0631\u0627\u0631\u062f\u0627\u062f API\u060c Format \u0644\u0627\u06af \u06cc\u0627 \u0642\u0631\u0627\u0631\u062f\u0627\u062f \u0646\u0627\u0645\u200c\u06af\u0630\u0627\u0631\u06cc \u0641\u0627\u06cc\u0644 \u062b\u0627\u0628\u062a \u0634\u062f\u0647 \u0628\u0627\u0634\u062f\u061b \u0686\u0648\u0646 \u0627\u06cc\u0646 \u0645\u0648\u0627\u0631\u062f Pattern \u062f\u0642\u06cc\u0642\u06cc \u0641\u0627\u0631\u063a \u0627\u0632 Locale \u0644\u0627\u0632\u0645 \u062f\u0627\u0631\u0646\u062f.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import java.text.DateFormat;\nimport java.text.SimpleDateFormat;\nimport java.util.Date;\nimport java.util.Locale;\n\nLocale locale = Locale.US;\nDateFormat dateFormat = DateFormat.getDateInstance(DateFormat.MEDIUM, locale);\nString styleBased = dateFormat.format(new Date());\n\nSimpleDateFormat patternBased = new SimpleDateFormat(\"dd-MM-yyyy HH:mm:ss\", locale);\nString patternOutput = patternBased.format(new Date());\n\nSystem.out.println(styleBased);\nSystem.out.println(patternOutput);<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>Jan 5, 2026\n05-01-2026 14:30:22<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><code>new Locale(String, String)<\/code> \u0627\u0632 \u062c\u0627\u0648\u0627 \u06f1\u06f9 \u0645\u0646\u0633\u0648\u062e \u0634\u062f\u0647. \u0628\u0647\u200c\u062c\u0627\u06cc\u0634 \u0627\u0632 <strong>Locale.Builder<\/strong> \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Locale locale = new Locale.Builder()\n    .setLanguage(\"en\")\n    .setRegion(\"US\")\n    .build();<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0631\u0627\u06cc Format \u06a9\u0631\u062f\u0646 <strong>\u0632\u0645\u0627\u0646<\/strong> \u0628\u0647\u200c\u062c\u0627\u06cc \u062a\u0627\u0631\u06cc\u062e\u060c \u0627\u0632 <code>DateFormat.getTimeInstance()<\/code> \u0628\u0627 \u0647\u0645\u0627\u0646 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc Locale \u0648 \u0633\u0628\u06a9 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Locale locale = Locale.US;\nDateFormat timeFormat = DateFormat.getTimeInstance(DateFormat.MEDIUM, locale);\nSystem.out.println(timeFormat.format(new Date()));<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062e\u0631\u0648\u062c\u06cc \u0628\u0647 \u0632\u0645\u0627\u0646 \u0648 Timezone \u0641\u0639\u0644\u06cc \u0648\u0627\u0628\u0633\u062a\u0647 \u0627\u0633\u062a\u061b \u0645\u062b\u0644\u0627\u064b:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>2:30:45 PM<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u0645\u0631\u062c\u0639 \u0633\u06cc\u0646\u062a\u06a9\u0633 Pattern \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 SimpleDateFormat<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u062d\u0631\u0648\u0641 Pattern \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 SimpleDateFormat \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u0628\u0647 \u0627\u062c\u0632\u0627\u06cc \u062a\u0627\u0631\u06cc\u062e\/\u0632\u0645\u0627\u0646 \u0646\u06af\u0627\u0634\u062a \u0645\u06cc\u200c\u0634\u0648\u0646\u062f\u061b \u0648 \u0627\u0646\u062a\u062e\u0627\u0628 \u062f\u0631\u0633\u062a Pattern\u060c \u0647\u0645 \u062e\u0631\u0648\u062c\u06cc Format \u0648 \u0647\u0645 \u0631\u0641\u062a\u0627\u0631 Parse \u0631\u0627 \u06a9\u0646\u062a\u0631\u0644 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u0646\u0645\u0627\u062f<\/th><th>\u0645\u0639\u0646\u06cc<\/th><th>Pattern \u0646\u0645\u0648\u0646\u0647<\/th><th>\u062e\u0631\u0648\u062c\u06cc \u0646\u0645\u0648\u0646\u0647<\/th><\/tr><\/thead><tbody><tr><td>G<\/td><td>\u0646\u0634\u0627\u0646\u06af\u0631 \u062f\u0648\u0631\u0647 (Era)<\/td><td>G<\/td><td>AD<\/td><\/tr><tr><td>y<\/td><td>\u0633\u0627\u0644<\/td><td>yyyy<\/td><td>2026<\/td><\/tr><tr><td>M<\/td><td>\u0645\u0627\u0647 \u062f\u0631 \u0633\u0627\u0644<\/td><td>MMMM<\/td><td>January<\/td><\/tr><tr><td>w<\/td><td>\u0647\u0641\u062a\u0647 \u062f\u0631 \u0633\u0627\u0644<\/td><td>w<\/td><td>3<\/td><\/tr><tr><td>W<\/td><td>\u0647\u0641\u062a\u0647 \u062f\u0631 \u0645\u0627\u0647<\/td><td>W<\/td><td>1<\/td><\/tr><tr><td>D<\/td><td>\u0631\u0648\u0632 \u062f\u0631 \u0633\u0627\u0644<\/td><td>D<\/td><td>15<\/td><\/tr><tr><td>d<\/td><td>\u0631\u0648\u0632 \u062f\u0631 \u0645\u0627\u0647<\/td><td>dd<\/td><td>05<\/td><\/tr><tr><td>F<\/td><td>\u0631\u0648\u0632 \u0647\u0641\u062a\u0647 \u062f\u0631 \u0645\u0627\u0647<\/td><td>F<\/td><td>1<\/td><\/tr><tr><td>E<\/td><td>\u0646\u0627\u0645 \u0631\u0648\u0632 \u062f\u0631 \u0647\u0641\u062a\u0647<\/td><td>EEE<\/td><td>Mon<\/td><\/tr><tr><td>u<\/td><td>\u0634\u0645\u0627\u0631\u0647 \u0631\u0648\u0632 \u062f\u0631 \u0647\u0641\u062a\u0647 (\u06f1 = \u062f\u0648\u0634\u0646\u0628\u0647)<\/td><td>u<\/td><td>1<\/td><\/tr><tr><td>a<\/td><td>\u0646\u0634\u0627\u0646\u06af\u0631 AM\/PM<\/td><td>a<\/td><td>PM<\/td><\/tr><tr><td>H<\/td><td>\u0633\u0627\u0639\u062a \u062f\u0631 \u0631\u0648\u0632 (\u06f0-\u06f2\u06f3)<\/td><td>HH<\/td><td>14<\/td><\/tr><tr><td>k<\/td><td>\u0633\u0627\u0639\u062a \u062f\u0631 \u0631\u0648\u0632 (\u06f1-\u06f2\u06f4)<\/td><td>k<\/td><td>14<\/td><\/tr><tr><td>K<\/td><td>\u0633\u0627\u0639\u062a \u062f\u0631 am\/pm (\u06f0-\u06f1\u06f1)<\/td><td>K<\/td><td>2<\/td><\/tr><tr><td>h<\/td><td>\u0633\u0627\u0639\u062a \u062f\u0631 am\/pm (\u06f1-\u06f1\u06f2)<\/td><td>hh<\/td><td>02<\/td><\/tr><tr><td>m<\/td><td>\u062f\u0642\u06cc\u0642\u0647 \u062f\u0631 \u0633\u0627\u0639\u062a<\/td><td>mm<\/td><td>30<\/td><\/tr><tr><td>s<\/td><td>\u062b\u0627\u0646\u06cc\u0647 \u062f\u0631 \u062f\u0642\u06cc\u0642\u0647<\/td><td>ss<\/td><td>45<\/td><\/tr><tr><td>S<\/td><td>\u0645\u06cc\u0644\u06cc\u200c\u062b\u0627\u0646\u06cc\u0647<\/td><td>SSS<\/td><td>123<\/td><\/tr><tr><td>z<\/td><td>Timezone \u0639\u0645\u0648\u0645\u06cc<\/td><td>z<\/td><td>IST<\/td><\/tr><tr><td>Z<\/td><td>\u0622\u0641\u0633\u062a Timezone \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 RFC 822<\/td><td>Z<\/td><td>+0530<\/td><\/tr><tr><td>X<\/td><td>\u0622\u0641\u0633\u062a Timezone \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 ISO 8601<\/td><td>XXX<\/td><td>+05:30<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">\u062a\u06a9\u0631\u0627\u0631 Pattern \u0648 \u0639\u0631\u0636 \u062e\u0631\u0648\u062c\u06cc<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u062a\u06a9\u0631\u0627\u0631 \u062d\u0631\u0648\u0641 Pattern\u060c \u0639\u0631\u0636\u060c Padding \u0639\u062f\u062f\u06cc \u06cc\u0627 \u0633\u0628\u06a9 \u0645\u062a\u0646 \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u06cc\u200c\u062f\u0647\u062f.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u0641\u06cc\u0644\u062f<\/th><th>Pattern<\/th><th>\u062e\u0631\u0648\u062c\u06cc \u0646\u0645\u0648\u0646\u0647<\/th><\/tr><\/thead><tbody><tr><td>\u0645\u0627\u0647<\/td><td>M<\/td><td>1<\/td><\/tr><tr><td>\u0645\u0627\u0647<\/td><td>MM<\/td><td>01<\/td><\/tr><tr><td>\u0645\u0627\u0647<\/td><td>MMM<\/td><td>Jan<\/td><\/tr><tr><td>\u0645\u0627\u0647<\/td><td>MMMM<\/td><td>January<\/td><\/tr><tr><td>\u0631\u0648\u0632 \u0645\u0627\u0647<\/td><td>d<\/td><td>5<\/td><\/tr><tr><td>\u0631\u0648\u0632 \u0645\u0627\u0647<\/td><td>dd<\/td><td>05<\/td><\/tr><tr><td>\u0633\u0627\u0639\u062a (\u06f0-\u06f2\u06f3)<\/td><td>H<\/td><td>7<\/td><\/tr><tr><td>\u0633\u0627\u0639\u062a (\u06f0-\u06f2\u06f3)<\/td><td>HH<\/td><td>07<\/td><\/tr><tr><td>\u0633\u0627\u0644<\/td><td>yy<\/td><td>26<\/td><\/tr><tr><td>\u0633\u0627\u0644<\/td><td>yyyy<\/td><td>2026<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">\u0645\u062b\u0627\u0644\u200c\u0647\u0627\u06cc Pattern \u0631\u0627\u06cc\u062c \u0628\u0627 \u062e\u0631\u0648\u062c\u06cc \u0645\u0648\u0631\u062f \u0627\u0646\u062a\u0638\u0627\u0631<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u06cc\u0646 Pattern\u0647\u0627\u06cc \u0631\u0627\u06cc\u062c \u0628\u0631\u0627\u06cc \u0644\u0627\u06af\u200c\u0647\u0627\u060c API\u0647\u0627 \u0648 \u062a\u0627\u0631\u06cc\u062e\u200c\u0647\u0627\u06cc \u0631\u0648-\u0628\u0647-\u06a9\u0627\u0631\u0628\u0631 \u0645\u0641\u06cc\u062f\u0646\u062f.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Pattern<\/th><th>\u062e\u0631\u0648\u062c\u06cc \u0646\u0645\u0648\u0646\u0647<\/th><\/tr><\/thead><tbody><tr><td>MM\/dd\/yyyy<\/td><td>01\/05\/2026<\/td><\/tr><tr><td>dd-M-yyyy hh:mm:ss<\/td><td>05-1-2026 02:30:45<\/td><\/tr><tr><td>dd MMMM yyyy<\/td><td>05 January 2026<\/td><\/tr><tr><td>dd MMMM yyyy zzzz<\/td><td>05 January 2026 India Standard Time<\/td><\/tr><tr><td>E, dd MMM yyyy HH:mm:ss z<\/td><td>Mon, 05 Jan 2026 14:30:45 IST<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">\u0646\u062d\u0648\u0647 Format \u06a9\u0631\u062f\u0646 \u062a\u0627\u0631\u06cc\u062e \u0628\u0627 SimpleDateFormat<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0631\u0627\u06cc Format \u06a9\u0631\u062f\u0646 Date\u060c SimpleDateFormat\u0627\u06cc \u0628\u0627 Pattern \u0628\u0633\u0627\u0632\u06cc\u062f \u0648 <code>.format(date)<\/code> \u0631\u0627 \u0635\u062f\u0627 \u0628\u0632\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import java.text.SimpleDateFormat;\nimport java.util.Date;\nimport java.util.Locale;\n\nDate now = new Date();\n\nSimpleDateFormat basic = new SimpleDateFormat(\"MM-dd-yyyy\", Locale.US);\nSimpleDateFormat withTime = new SimpleDateFormat(\"dd-MM-yyyy HH:mm:ss\", Locale.US);\nSimpleDateFormat isoLike = new SimpleDateFormat(\"yyyy-MM-dd'T'HH:mm:ssZ\", Locale.US);\n\nSystem.out.println(basic.format(now));\nSystem.out.println(withTime.format(now));\nSystem.out.println(isoLike.format(now));<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>01-05-2026\n05-01-2026 14:30:45\n2026-01-05T14:30:45+0000<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">SimpleDateFormat \u0642\u0648\u0627\u0646\u06cc\u0646 Timezone \u0648 Locale \u0631\u0627 \u0627\u0632 Instance \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 Formatter \u0627\u0639\u0645\u0627\u0644 \u0645\u06cc\u200c\u06a9\u0646\u062f\u061b \u067e\u0633 \u0648\u0642\u062a\u06cc \u062e\u0631\u0648\u062c\u06cc \u0628\u0627\u06cc\u062f \u0633\u0627\u0632\u06af\u0627\u0631 \u0628\u0627\u0634\u062f\u060c \u0627\u06cc\u0646 \u0645\u0642\u0627\u062f\u06cc\u0631 \u0631\u0627 \u0635\u0631\u06cc\u062d \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u0646\u062d\u0648\u0647 Parse \u06a9\u0631\u062f\u0646 \u0631\u0634\u062a\u0647 \u0628\u0647 \u062a\u0627\u0631\u06cc\u062e \u0628\u0627 SimpleDateFormat<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0631\u0627\u06cc Parse \u06a9\u0631\u062f\u0646 \u0631\u0634\u062a\u0647\u200c\u0627\u06cc \u0628\u0647 Date\u060c Formatter\u0627\u06cc \u0628\u0627 Pattern\u0650 \u062f\u0642\u06cc\u0642 \u0648\u0631\u0648\u062f\u06cc \u0628\u0633\u0627\u0632\u06cc\u062f \u0648 <code>.parse(input)<\/code> \u0631\u0627 \u0635\u062f\u0627 \u0628\u0632\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import java.text.ParseException;\nimport java.text.SimpleDateFormat;\nimport java.util.Date;\nimport java.util.Locale;\n\ntry {\n    SimpleDateFormat dateParser = new SimpleDateFormat(\"dd-MM-yyyy\", Locale.US);\n    Date parsedDate = dateParser.parse(\"05-01-2026\");\n    System.out.println(parsedDate);\n\n    SimpleDateFormat timeParser = new SimpleDateFormat(\"HH:mm:ss\", Locale.US);\n    Date parsedTime = timeParser.parse(\"22:15:09\");\n    System.out.println(parsedTime);\n} catch (ParseException e) {\n    e.printStackTrace();\n}<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>Mon Jan 05 00:00:00 UTC 2026\nThu Jan 01 22:15:09 UTC 1970<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u06af\u0631 \u0641\u0642\u0637 \u0632\u0645\u0627\u0646 \u0641\u0631\u0627\u0647\u0645 \u0634\u062f\u0647 \u0628\u0627\u0634\u062f\u060c \u062c\u0627\u0648\u0627 \u0627\u0632 \u062a\u0627\u0631\u06cc\u062e Epoch \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u0628\u062e\u0634 \u062a\u0627\u0631\u06cc\u062e \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0645\u062f\u06cc\u0631\u06cc\u062a \u0635\u062d\u06cc\u062d ParseException<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><code>parse()<\/code> \u0648\u0642\u062a\u06cc \u0648\u0631\u0648\u062f\u06cc \u0628\u0627 Pattern\u0650 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc\u200c\u0634\u062f\u0647 \u0645\u0637\u0627\u0628\u0642\u062a \u0646\u062f\u0627\u0631\u062f\u060c ParseException \u067e\u0631\u062a\u0627\u0628 \u0645\u06cc\u200c\u06a9\u0646\u062f\u061b \u067e\u0633 \u06a9\u062f \u067e\u0631\u0648\u062f\u0627\u06a9\u0634\u0646 \u0628\u0627\u06cc\u062f \u0622\u0646 \u0631\u0627 \u0628\u06af\u06cc\u0631\u062f \u0648 \u0647\u0645 \u0648\u0631\u0648\u062f\u06cc \u062e\u0627\u0645 \u0648 \u0647\u0645 Pattern \u0645\u0648\u0631\u062f \u0627\u0646\u062a\u0638\u0627\u0631 \u0631\u0627 \u0644\u0627\u06af \u06a9\u0646\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import java.text.ParseException;\nimport java.text.SimpleDateFormat;\nimport java.util.Locale;\n\nString input = \"31\/01\/2026\";\nString pattern = \"dd-MM-yyyy\";\nSimpleDateFormat parser = new SimpleDateFormat(pattern, Locale.US);\n\ntry {\n    parser.parse(input);\n    System.out.println(\"Parsed successfully\");\n} catch (ParseException e) {\n    \/\/ \u0628\u0631\u0627\u06cc \u062f\u06cc\u0628\u0627\u06af \u0622\u0633\u0627\u0646\u200c\u062a\u0631\u060c \u0647\u0645 \u0645\u0642\u062f\u0627\u0631 \u0648\u0631\u0648\u062f\u06cc \u0648 \u0647\u0645 pattern \u0631\u0627 \u0634\u0627\u0645\u0644 \u0634\u0648\u06cc\u062f.\n    System.err.println(\"Failed to parse date string: \" + input);\n    System.err.println(\"Expected pattern: \" + pattern);\n    System.err.println(\"Parser error: \" + e.getMessage());\n}<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>Failed to parse date string: 31\/01\/2026\nExpected pattern: dd-MM-yyyy\nParser error: Unparseable date: \"31\/01\/2026\"<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u0627\u0639\u062a\u0628\u0627\u0631\u0633\u0646\u062c\u06cc \u0631\u0634\u062a\u0647\u200c\u0647\u0627\u06cc \u062a\u0627\u0631\u06cc\u062e \u0642\u0628\u0644 \u0627\u0632 Parse \u06a9\u0631\u062f\u0646<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">SimpleDateFormat \u0628\u0647\u200c\u0637\u0648\u0631 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 Lenient \u0627\u0633\u062a\u061b \u067e\u0633 \u0645\u0642\u0627\u062f\u06cc\u0631 \u0646\u0627\u0645\u0639\u062a\u0628\u0631 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0647\u200c\u062c\u0627\u06cc \u0634\u06a9\u0633\u062a \u062e\u0648\u0631\u062f\u0646\u060c Roll Over \u0634\u0648\u0646\u062f. \u0628\u0631\u0627\u06cc \u0627\u0639\u0645\u0627\u0644 \u0627\u0639\u062a\u0628\u0627\u0631\u0633\u0646\u062c\u06cc \u0633\u062e\u062a\u200c\u06af\u06cc\u0631\u0627\u0646\u0647\u060c <code>setLenient(false)<\/code> \u0631\u0627 \u0635\u062f\u0627 \u0628\u0632\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import java.text.ParseException;\nimport java.text.SimpleDateFormat;\nimport java.util.Locale;\n\nString invalid = \"2024-13-45\";\n\nSimpleDateFormat lenientParser = new SimpleDateFormat(\"yyyy-MM-dd\", Locale.US);\nSimpleDateFormat strictParser = new SimpleDateFormat(\"yyyy-MM-dd\", Locale.US);\nstrictParser.setLenient(false);\n\nSystem.out.println(\"Lenient parse result:\");\ntry {\n    \/\/ \u062d\u0627\u0644\u062a lenient \u0628\u0647\u200c\u062c\u0627\u06cc \u067e\u0631\u062a\u0627\u0628\u060c \u0645\u0642\u0627\u062f\u06cc\u0631 \u0646\u0627\u0645\u0639\u062a\u0628\u0631 \u0631\u0627 \u0628\u06cc\u200c\u0635\u062f\u0627 roll over \u0645\u06cc\u200c\u06a9\u0646\u062f.\n    System.out.println(lenientParser.parse(invalid));\n} catch (ParseException e) {\n    System.out.println(\"ParseException: \" + e.getMessage());\n}\n\nSystem.out.println(\"Strict parse result:\");\ntry {\n    System.out.println(strictParser.parse(invalid));\n} catch (ParseException e) {\n    System.out.println(\"ParseException: \" + e.getMessage());\n}<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>Lenient parse result:\nFri Feb 14 00:00:00 UTC 2025\nStrict parse result:\nParseException: Unparseable date: \"2024-13-45\"<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u0645\u062f\u06cc\u0631\u06cc\u062a Timezone \u062f\u0631 SimpleDateFormat<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">SimpleDateFormat \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0647\u0645\u0627\u0646 Date \u0631\u0627 \u062f\u0631 Timezone\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 Render \u06a9\u0646\u062f\u2014\u0628\u0627 \u062a\u0646\u0638\u06cc\u0645 Timezone\u0627\u06cc \u0631\u0648\u06cc Formatter \u0642\u0628\u0644 \u0627\u0632 \u062e\u0631\u0648\u062c\u06cc. \u0634\u06cc\u0621 Date \u0641\u0642\u0637 \u0634\u0645\u0627\u0631\u0634 \u0645\u06cc\u0644\u06cc\u200c\u062b\u0627\u0646\u06cc\u0647 UTC \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0631\u062f\u0647 \u0648 Timezone \u062e\u0648\u062f\u0634 \u0631\u0627 \u0646\u062f\u0627\u0631\u062f. Timezone \u062f\u063a\u062f\u063a\u0647 Format \u06a9\u0631\u062f\u0646 \u0627\u0633\u062a\u2014\u0646\u0647 \u0630\u062e\u06cc\u0631\u0647\u200c\u0633\u0627\u0632\u06cc\u061b \u0647\u0645\u0627\u0646 \u0645\u0642\u062f\u0627\u0631 Date \u062e\u0631\u0648\u062c\u06cc\u200c\u0647\u0627\u06cc \u0642\u0627\u0628\u0644-\u062e\u0648\u0627\u0646\u062f\u0646-\u0627\u0646\u0633\u0627\u0646\u06cc \u0645\u062a\u0641\u0627\u0648\u062a\u06cc \u062a\u0648\u0644\u06cc\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f \u0628\u0633\u062a\u0647 \u0628\u0647 \u0627\u06cc\u0646\u06a9\u0647 Formatter \u06a9\u062f\u0627\u0645 Timezone \u0631\u0627 \u0627\u0639\u0645\u0627\u0644 \u06a9\u0646\u062f. \u06cc\u0639\u0646\u06cc <code>setTimeZone()<\/code> \u0628\u0627\u06cc\u062f \u0631\u0648\u06cc Formatter \u0642\u0628\u0644 \u0627\u0632 \u0635\u062f\u0627 \u0632\u062f\u0646 <code>format()<\/code> \u0635\u062f\u0627 \u0632\u062f\u0647 \u0634\u0648\u062f\u061b \u062a\u0646\u0638\u06cc\u0645\u0634 \u0628\u0639\u062f\u0627\u064b \u0647\u06cc\u0686 \u0627\u062b\u0631\u06cc \u0628\u0631 \u062e\u0631\u0648\u062c\u06cc\u0650 \u0627\u0632-\u067e\u06cc\u0634-\u062a\u0648\u0644\u06cc\u062f\u0634\u062f\u0647 \u0646\u062f\u0627\u0631\u062f.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import java.text.SimpleDateFormat;\nimport java.util.Date;\nimport java.util.Locale;\nimport java.util.TimeZone;\n\nDate timestamp = new Date(1700000000000L); \/\/ \u0644\u062d\u0638\u0647 \u062b\u0627\u0628\u062a \u0628\u0631\u0627\u06cc \u062e\u0631\u0648\u062c\u06cc \u062a\u06a9\u0631\u0627\u0631\u067e\u0630\u06cc\u0631\nSimpleDateFormat formatter = new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss Z\", Locale.US);\n\nformatter.setTimeZone(TimeZone.getTimeZone(\"UTC\"));\nSystem.out.println(\"UTC: \" + formatter.format(timestamp));\n\nformatter.setTimeZone(TimeZone.getTimeZone(\"America\/New_York\"));\nSystem.out.println(\"New York: \" + formatter.format(timestamp));\n\nformatter.setTimeZone(TimeZone.getTimeZone(\"Asia\/Kolkata\"));\nSystem.out.println(\"Kolkata: \" + formatter.format(timestamp));<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>UTC: 2023-11-14 22:13:20 +0000\nNew York: 2023-11-14 17:13:20 -0500\nKolkata: 2023-11-15 03:43:20 +0530<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u0627\u0634\u062a\u0628\u0627\u0647\u0627\u062a \u0631\u0627\u06cc\u062c Timezone \u0648 \u0646\u062d\u0648\u0647 \u0627\u062c\u062a\u0646\u0627\u0628 \u0627\u0632 \u0622\u0646\u200c\u0647\u0627<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0627\u06af\u200c\u0647\u0627\u06cc Timezone \u0627\u063a\u0644\u0628 \u0627\u0632 \u0642\u0627\u0637\u06cc \u06a9\u0631\u062f\u0646 Instant\u0647\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647\u200c\u0634\u062f\u0647 \u0628\u0627 \u0632\u0645\u0627\u0646 \u0645\u062d\u0644\u06cc\u0650 Render-\u0634\u062f\u0647 \u0645\u06cc\u200c\u0622\u06cc\u0646\u062f.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Date<\/strong> \u0645\u06cc\u0644\u06cc\u200c\u062b\u0627\u0646\u06cc\u0647\u200c\u0647\u0627\u06cc UTC \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f\u061b \u0648 Timezone \u0641\u0642\u0637 \u0647\u0646\u06af\u0627\u0645 Format \u0627\u0639\u0645\u0627\u0644 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/li>\n\n\n\n<li>\u0635\u062f\u0627 \u0632\u062f\u0646 <code>setTimeZone()<\/code> \u0631\u0648\u06cc Instance\u0650 Formatter\u0650 \u0627\u0634\u062a\u0631\u0627\u06a9\u06cc \u062f\u0631 \u0645\u062d\u06cc\u0637 Multi-Threaded \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0648\u0633\u0637 \u0639\u0645\u0644\u06cc\u0627\u062a\u0650 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc\u0650 \u062f\u0631-\u062c\u0631\u06cc\u0627\u0646\u0650 Thread \u062f\u06cc\u06af\u0631\u06cc\u060c Timezone \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u062f\u061b \u0648 \u062e\u0631\u0648\u062c\u06cc \u0631\u0627\u2014\u0628\u062f\u0648\u0646 \u067e\u0631\u062a\u0627\u0628 \u0647\u06cc\u0686 Exception\u0627\u06cc\u2014\u062f\u0631 Timezone \u0627\u0634\u062a\u0628\u0627\u0647 \u062a\u0648\u0644\u06cc\u062f \u06a9\u0646\u062f.<\/li>\n\n\n\n<li>\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062c\u062f\u062f \u0627\u0632 Instance \u0645\u0646\u0641\u0631\u062f SimpleDateFormat \u0628\u06cc\u0646 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc HTTP \u062f\u0631 Servlet \u06cc\u0627 Controller \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 Spring \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0628\u0627\u0639\u062b \u0634\u0648\u062f \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc <code>setTimeZone()<\/code> \u06cc\u06a9 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u060c \u0628\u0631 \u062e\u0631\u0648\u062c\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u062f\u06cc\u06af\u0631\u06cc \u0627\u062b\u0631 \u0628\u06af\u0630\u0627\u0631\u062f\u061b \u0628\u0647\u200c\u0627\u0632\u0627\u06cc \u0647\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a Instance \u062c\u062f\u06cc\u062f\u06cc \u0628\u0633\u0627\u0632\u06cc\u062f \u06cc\u0627 \u0627\u0632 <code>ThreadLocal&lt;SimpleDateFormat><\/code> \u0628\u0631\u0627\u06cc \u0627\u06cc\u0632\u0648\u0644\u0647 \u06a9\u0631\u062f\u0646 \u0648\u0636\u0639\u06cc\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/li>\n\n\n\n<li><code>TimeZone.getTimeZone(\"Invalid\/Zone\")<\/code> \u0628\u06cc\u200c\u0635\u062f\u0627 \u0628\u0647 GMT \u0628\u0631\u0645\u06cc\u200c\u06af\u0631\u062f\u062f\u2014\u0686\u0648\u0646 \u0642\u0631\u0627\u0631\u062f\u0627\u062f \u0645\u062a\u062f\u060c GMT \u0631\u0627 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0628\u0631\u0627\u06cc ID\u0647\u0627\u06cc \u0646\u0627\u0634\u0646\u0627\u062e\u062a\u0647 \u062a\u0639\u06cc\u06cc\u0646 \u0645\u06cc\u200c\u06a9\u0646\u062f\u061b \u0646\u0647 \u0627\u06cc\u0646\u06a9\u0647 Exception \u067e\u0631\u062a\u0627\u0628 \u06a9\u0646\u062f.<\/li>\n\n\n\n<li>\u0634\u0646\u0627\u0633\u0647\u200c\u0647\u0627\u06cc Zone \u0631\u0627 \u0642\u0628\u0644 \u0627\u0632 \u067e\u0627\u0633 \u062f\u0627\u062f\u0646 \u0628\u0647 <code>TimeZone.getTimeZone()<\/code> \u0628\u0627 <code>ZoneId.of()<\/code> \u0627\u0632 java.time \u0627\u0639\u062a\u0628\u0627\u0631\u0633\u0646\u062c\u06cc \u06a9\u0646\u06cc\u062f\u061b <code>ZoneId.of()<\/code> \u0631\u0648\u06cc ID \u0646\u0627\u0645\u0639\u062a\u0628\u0631\u060c ZoneRulesException \u067e\u0631\u062a\u0627\u0628 \u0645\u06cc\u200c\u06a9\u0646\u062f\u2014which \u0645\u0633\u0626\u0644\u0647 \u0631\u0627 \u0635\u0631\u06cc\u062d \u0645\u06cc\u200c\u0633\u0627\u0632\u062f.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Format \u06a9\u0631\u062f\u0646 \u062a\u0627\u0631\u06cc\u062e \u0622\u06af\u0627\u0647-\u0627\u0632-Locale<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0631\u0627\u06cc \u062a\u0648\u0644\u06cc\u062f \u062e\u0631\u0648\u062c\u06cc \u062a\u0627\u0631\u06cc\u062e\u0650 \u062e\u0627\u0635-Locale\u2014\u0645\u0627\u0646\u0646\u062f \u0646\u0627\u0645\u200c\u0647\u0627\u06cc \u0645\u0627\u0647 \u0641\u0631\u0627\u0646\u0633\u0648\u06cc \u06cc\u0627 \u0646\u0627\u0645 \u0631\u0648\u0632\u0647\u0627\u06cc \u0622\u0644\u0645\u0627\u0646\u06cc\u2014Locale\u0627\u06cc \u0628\u0647 Constructor \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 SimpleDateFormat \u067e\u0627\u0633 \u0628\u062f\u0647\u06cc\u062f. \u0627\u0632 \u062b\u0627\u0628\u062a\u200c\u0647\u0627\u06cc \u062f\u0627\u062e\u0644\u06cc \u06cc\u0639\u0646\u06cc Locale.US\u060c Locale.UK\u060c Locale.FRENCH\u060c Locale.GERMAN \u0628\u0631\u0627\u06cc \u0645\u0646\u0627\u0637\u0642 \u0631\u0627\u06cc\u062c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f\u061b \u06cc\u0627 \u0628\u0627 Locale.Builder \u0648\u0642\u062a\u06cc \u0645\u0646\u0637\u0642\u0647\u200c\u0627\u06cc \u0644\u0627\u0632\u0645 \u062f\u0627\u0631\u06cc\u062f \u06a9\u0647 \u062b\u0627\u0628\u062a\u200c\u0647\u0627 \u067e\u0648\u0634\u0634\u0634 \u0646\u0645\u06cc\u200c\u062f\u0647\u0646\u062f\u060c Locale \u0633\u0641\u0627\u0631\u0634\u06cc \u0628\u0633\u0627\u0632\u06cc\u062f. <strong>Locale<\/strong> \u062a\u0639\u06cc\u06cc\u0646 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u062f\u0627\u0645 \u0632\u0628\u0627\u0646 \u0628\u0631\u0627\u06cc \u0641\u06cc\u0644\u062f\u0647\u0627\u06cc \u0645\u062a\u0646\u06cc \u0645\u0627\u0646\u0646\u062f \u0646\u0627\u0645 \u0645\u0627\u0647\u200c\u0647\u0627\u060c \u0646\u0627\u0645 \u0631\u0648\u0632\u0647\u0627 \u0648 \u0646\u0634\u0627\u0646\u06af\u0631\u0647\u0627\u06cc AM\/PM \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0634\u0648\u062f.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u062a\u0639\u06cc\u06cc\u0646 Locale \u062f\u0631 Constructor \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 SimpleDateFormat<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Locale \u0631\u0627 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u0622\u0631\u06af\u0648\u0645\u0627\u0646 \u062f\u0648\u0645 Constructor \u067e\u0627\u0633 \u0628\u062f\u0647\u06cc\u062f. \u0627\u06af\u0631 \u062d\u0630\u0641\u0634 \u06a9\u0646\u06cc\u062f\u060c SimpleDateFormat \u062f\u0631\u0648\u0646 \u062e\u0648\u062f <code>Locale.getDefault()<\/code> \u0631\u0627 \u0635\u062f\u0627 \u0645\u06cc\u200c\u0632\u0646\u062f\u2014which Formatter \u0631\u0627 \u0628\u0647 Locale \u0632\u0645\u0627\u0646-\u0627\u062c\u0631\u0627\u06cc JVM \u0645\u0642\u06cc\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f\u061b \u0645\u0642\u062f\u0627\u0631\u06cc \u06a9\u0647 \u0628\u06cc\u0646 \u0645\u0627\u0634\u06cc\u0646\u200c\u0647\u0627\u06cc \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u0647\u060c \u0645\u062d\u06cc\u0637\u200c\u0647\u0627\u06cc CI \u0648 \u0633\u0631\u0648\u0631\u0647\u0627\u06cc \u067e\u0631\u0648\u062f\u0627\u06a9\u0634\u0646\u0650 \u0627\u062c\u0631\u0627\u0634\u062f\u0647 \u0632\u06cc\u0631 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc\u200c\u0647\u0627\u06cc Locale \u0645\u062a\u0641\u0627\u0648\u062a\u0650 \u0633\u06cc\u0633\u062a\u0645\u200c\u0639\u0627\u0645\u0644\u060c \u0645\u062a\u0641\u0627\u0648\u062a \u0627\u0633\u062a.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import java.text.SimpleDateFormat;\nimport java.util.Date;\nimport java.util.Locale;\n\nDate sample = new Date(1700000000000L);\nString pattern = \"EEEE, dd MMMM yyyy\";\n\nSimpleDateFormat usFormatter = new SimpleDateFormat(pattern, Locale.US);\nSimpleDateFormat frFormatter = new SimpleDateFormat(pattern, Locale.FRENCH);\n\nString usDate = usFormatter.format(sample);\nString frDate = frFormatter.format(sample);\n\nSystem.out.println(\"US: \" + usDate);\nSystem.out.println(\"French: \" + frDate);<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>US: Tuesday, 14 November 2023\nFrench: mardi, 14 novembre 2023<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Format \u06a9\u0631\u062f\u0646 \u0646\u0627\u0645 \u0645\u0627\u0647 \u0648 \u0631\u0648\u0632 \u0628\u0631 \u0627\u0633\u0627\u0633 \u0645\u0646\u0637\u0642\u0647<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u0647\u0645\u0627\u0646 Pattern\u060c \u062e\u0631\u0648\u062c\u06cc \u0645\u062a\u0646\u06cc \u0645\u062a\u0641\u0627\u0648\u062a\u06cc \u0628\u0631 \u0627\u0633\u0627\u0633 Locale \u062a\u0648\u0644\u06cc\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Locale<\/th><th>Pattern<\/th><th>\u062e\u0631\u0648\u062c\u06cc<\/th><\/tr><\/thead><tbody><tr><td>Locale.US<\/td><td>EEEE, dd MMMM yyyy<\/td><td>Tuesday, 14 November 2023<\/td><\/tr><tr><td>Locale.FRENCH<\/td><td>EEEE, dd MMMM yyyy<\/td><td>mardi, 14 novembre 2023<\/td><\/tr><tr><td>Locale.GERMAN<\/td><td>EEEE, dd MMMM yyyy<\/td><td>Dienstag, 14. November 2023<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u062a\u06a9\u06cc\u0647 \u0628\u0631 <code>Locale.getDefault()<\/code> \u062f\u0631 JVM\u0627\u06cc \u06a9\u0647 \u062f\u0631 \u0645\u062d\u06cc\u0637 \u0633\u0631\u0648\u0631\u06cc \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u0634\u0648\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u062e\u0631\u0648\u062c\u06cc \u0646\u0627\u0633\u0627\u0632\u06af\u0627\u0631 \u062a\u0648\u0644\u06cc\u062f \u06a9\u0646\u062f\u2014\u0686\u0648\u0646 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a Locale \u0633\u06cc\u0633\u062a\u0645\u200c\u0639\u0627\u0645\u0644 \u0628\u06cc\u0646 \u0647\u0627\u0633\u062a\u200c\u0647\u0627 \u0645\u062a\u0641\u0627\u0648\u062a \u0627\u0633\u062a. \u0647\u0645\u06cc\u0634\u0647 Locale \u0635\u0631\u06cc\u062d\u06cc \u067e\u0627\u0633 \u0628\u062f\u0647\u06cc\u062f.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u0645\u0633\u0627\u0626\u0644 Thread Safety \u0628\u0627 SimpleDateFormat<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u0686\u0631\u0627 SimpleDateFormat \u0627\u0645\u0646-\u0628\u0631\u0627\u06cc-Thread \u0646\u06cc\u0633\u062a<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">SimpleDateFormat \u062d\u06cc\u0646 \u0639\u0645\u0644\u06cc\u0627\u062a\u0647\u0627\u06cc Parse\/Format\u060c \u0648\u0636\u0639\u06cc\u062a \u062f\u0627\u062e\u0644\u06cc\u0650 Calendar \u0648 NumberFormat \u0631\u0627 Mutate \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u06af\u0631 \u0686\u0646\u062f Thread \u0627\u0632 \u06cc\u06a9 Instance \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u0646\u062f\u060c \u0627\u06cc\u0646 \u0641\u06cc\u0644\u062f\u0647\u0627\u06cc Mutable \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u0648\u0633\u0637 \u0639\u0645\u0644\u06cc\u0627\u062a Overwrite \u0634\u0648\u0646\u062f\u061b \u06a9\u0647 \u0628\u0647 Race Condition \u0648 \u062e\u0631\u0648\u062c\u06cc \u063a\u06cc\u0631\u0642\u0627\u0628\u0644-\u067e\u06cc\u0634\u200c\u0628\u06cc\u0646\u06cc \u0645\u0646\u062c\u0631 \u0645\u06cc\u200c\u0634\u0648\u062f. \u062f\u0631 \u0639\u0645\u0644\u060c \u0627\u06cc\u0646 \u0628\u0647 \u0634\u06a9\u0644 \u062a\u0627\u0631\u06cc\u062e\u0647\u0627\u06cc\u06cc \u0627\u0632 \u06cc\u06a9 Thread \u06a9\u0647 \u062f\u0631 \u0646\u062a\u06cc\u062c\u0647 Thread \u062f\u06cc\u06af\u0631\u06cc \u0638\u0627\u0647\u0631 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f\u060c <code>.parse()<\/code>\u0627\u06cc \u06a9\u0647\u2014\u0628\u062f\u0648\u0646 \u0647\u06cc\u0686 Exception\u0627\u06cc\u2014\u062a\u0627\u0631\u06cc\u062e \u06a9\u0627\u0645\u0644\u0627\u064b \u0627\u0634\u062a\u0628\u0627\u0647\u06cc \u0628\u0631\u0645\u06cc\u200c\u06af\u0631\u062f\u0627\u0646\u062f\u060c \u06cc\u0627 ArrayIndexOutOfBoundsException\u0627\u06cc \u06a9\u0647 \u0627\u0632 \u062f\u0631\u0648\u0646 \u062e\u0648\u062f Formatter \u067e\u0631\u062a\u0627\u0628 \u0645\u06cc\u200c\u0634\u0648\u062f\u060c \u0628\u0631\u0648\u0632 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u06cc\u0646 \u062e\u0631\u0627\u0628\u06cc\u0647\u0627 \u0645\u062a\u0646\u0627\u0648\u0628 \u0648 \u0648\u0627\u0628\u0633\u062a\u0647-\u0628\u0647-\u0628\u0627\u0631 \u0647\u0633\u062a\u0646\u062f\u061b \u06a9\u0647 \u0628\u0627\u0632\u062a\u0648\u0644\u06cc\u062f\u0634\u0627\u0646 \u0631\u0627 \u062f\u0631 \u0645\u062d\u06cc\u0637 \u062a\u0633\u062a \u062a\u06a9-Threaded \u062f\u0634\u0648\u0627\u0631 \u0645\u06cc\u200c\u0633\u0627\u0632\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0648\u0642\u062a\u06cc \u0628\u0647 Format \u06a9\u0631\u062f\u0646 \u0627\u0645\u0646-\u0628\u0631\u0627\u06cc-\u0647\u0645\u200c\u0632\u0645\u0627\u0646\u06cc \u062f\u0631 \u06a9\u062f Legacy \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u062f\u060c Instance\u0647\u0627 \u0631\u0627 \u0628\u0631 \u0627\u0633\u0627\u0633 Thread \u06cc\u0627 Request Scope \u0627\u06cc\u0632\u0648\u0644\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 ThreadLocal \u0628\u0631\u0627\u06cc \u0627\u06cc\u0632\u0648\u0644\u0647 \u06a9\u0631\u062f\u0646 Instance\u0647\u0627\u06cc SimpleDateFormat<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><code>ThreadLocal&lt;SimpleDateFormat&gt;<\/code> \u0628\u0647 \u0647\u0631 Thread\u060c Formatter \u0645\u062e\u0635\u0648\u0635 \u062e\u0648\u062f\u0634 \u0631\u0627 \u0645\u06cc\u200c\u062f\u0647\u062f \u0648 \u0627\u0632 \u0648\u0636\u0639\u06cc\u062a\u0650 Mutable \u0645\u0634\u062a\u0631\u06a9 \u0627\u062c\u062a\u0646\u0627\u0628 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u062f\u0631 \u0645\u062d\u06cc\u0637\u0647\u0627\u06cc Thread-Pool \u0645\u0627\u0646\u0646\u062f \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627\u06cc Servlet \u0648 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u0647\u0627\u06cc Spring\u060c Thread\u0647\u0627 \u0628\u06cc\u0646 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u0647\u0627 \u0628\u0627\u0632\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0634\u062f\u0647 \u0648 \u0647\u0631\u06af\u0632 Terminate \u0646\u0645\u06cc\u200c\u0634\u0648\u0646\u062f\u061b \u06cc\u0639\u0646\u06cc \u0645\u0642\u0627\u062f\u06cc\u0631 ThreadLocal \u0647\u0631\u06af\u0632 \u062e\u0648\u062f\u06a9\u0627\u0631 \u062d\u0630\u0641 \u0646\u0645\u06cc\u200c\u0634\u0648\u0646\u062f. \u0647\u0645\u06cc\u0634\u0647 \u0628\u0639\u062f \u0627\u0632 \u062a\u06a9\u0645\u06cc\u0644 \u0639\u0645\u0644\u06cc\u0627\u062a <code>FORMATTER.remove()<\/code> \u0631\u0627 \u0635\u062f\u0627 \u0628\u0632\u0646\u06cc\u062f\u061b \u0648\u06af\u0631\u0646\u0647 Instance \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 Formatter \u0628\u0631\u0627\u06cc \u0639\u0645\u0631\u0650 Thread \u0628\u0627\u0642\u06cc \u0645\u06cc\u200c\u0645\u0627\u0646\u062f \u0648 \u0632\u06cc\u0631 \u0628\u0627\u0631\u0650 \u067e\u06cc\u0648\u0633\u062a\u0647\u060c \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u0646\u0634\u062a \u062d\u0627\u0641\u0638\u0647 \u0627\u0646\u0628\u0627\u0634\u062a\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import java.text.SimpleDateFormat;\nimport java.util.Date;\nimport java.util.Locale;\n\npublic class ThreadSafeLegacyFormatter {\n    \/\/ \u0647\u0631 thread \u06cc\u06a9 instance \u0627\u062e\u062a\u0635\u0627\u0635\u06cc formatter \u0645\u06cc\u200c\u06af\u06cc\u0631\u062f.\n    private static final ThreadLocal&lt;SimpleDateFormat&gt; FORMATTER =\n        ThreadLocal.withInitial(() -&gt; new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss\", Locale.US));\n\n    public static String format(Date date) {\n        try {\n            \/\/ \u0647\u06cc\u0686 mutation \u0628\u06cc\u0646-thread\u0627\u06cc \u0646\u06cc\u0633\u062a\u061b \u0686\u0648\u0646 \u0647\u0631 thread \u0641\u0631\u0645\u062a\u200c\u06a9\u0646\u0646\u062f\u0647 \u062e\u0648\u062f\u0634 \u0631\u0627 \u0645\u06cc\u200c\u062e\u0648\u0627\u0646\u062f.\n            return FORMATTER.get().format(date);\n        } finally {\n            \/\/ \u0628\u0631\u0627\u06cc \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 \u0646\u0634\u062a \u062d\u0627\u0641\u0638\u0647 \u062f\u0631 thread pool\u0647\u0627\u060c instance \u0631\u0627 \u0628\u0639\u062f \u0627\u0632 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062d\u0630\u0641 \u06a9\u0646.\n            FORMATTER.remove();\n        }\n    }\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u0633\u0648\u06cc\u06cc\u0686 \u0628\u0647 DateTimeFormatter \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u0627\u0645\u0646-\u0628\u0631\u0627\u06cc-Thread<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">DateTimeFormatter\u060c Immutable \u0648 \u0627\u0645\u0646-\u0628\u0631\u0627\u06cc-Thread \u0627\u0633\u062a\u061b \u067e\u0633 \u06cc\u06a9 Instance\u0650 Static \u0645\u0634\u062a\u0631\u06a9 \u0627\u0645\u0646 \u0627\u0633\u062a:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import java.text.SimpleDateFormat;\nimport java.time.LocalDateTime;\nimport java.time.format.DateTimeFormatter;\nimport java.util.Date;\nimport java.util.Locale;\n\n\/\/ \u0647\u0646\u06af\u0627\u0645 \u0627\u0634\u062a\u0631\u0627\u06a9 \u0628\u06cc\u0646 thread\u0647\u0627 \u0627\u0645\u0646-\u0628\u0631\u0627\u06cc-thread \u0646\u06cc\u0633\u062a\nSimpleDateFormat unsafe = new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss\", Locale.US);\nSystem.out.println(unsafe.format(new Date()));\n\n\/\/ \u0627\u0645\u0646-\u0628\u0631\u0627\u06cc-thread: DateTimeFormatter \u0627\u0633\u062a immutable \u0648 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u0641\u06cc\u0644\u062f static \u0630\u062e\u06cc\u0631\u0647 \u0634\u0648\u062f\nDateTimeFormatter safe = DateTimeFormatter.ofPattern(\"yyyy-MM-dd HH:mm:ss\", Locale.US);\nSystem.out.println(safe.format(LocalDateTime.now()));<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>2026-01-05 14:30:22\n2026-01-05 14:30:22<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u0645\u0647\u0627\u062c\u0631\u062a \u0627\u0632 SimpleDateFormat \u0628\u0647 DateTimeFormatter<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u0645\u0647\u0627\u062c\u0631\u062a \u0628\u0647 DateTimeFormatter\u060c \u0631\u06cc\u0633\u06a9\u0647\u0627\u06cc Thread-Safety \u0631\u0627 \u062d\u0630\u0641\u060c Workaround\u0647\u0627\u06cc ThreadLocal \u0631\u0627 \u0627\u0632 \u0628\u06cc\u0646 \u0628\u0631\u062f\u0647 \u0648 \u0628\u0627 \u0627\u0646\u0648\u0627\u0639 java.time \u062a\u0645\u06cc\u0632 \u06cc\u06a9\u067e\u0627\u0631\u0686\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0628\u0631\u0627\u06cc \u0628\u06cc\u0634\u062a\u0631 Codebase\u0647\u0627\u060c \u0645\u0647\u0627\u062c\u0631\u062a \u0645\u06a9\u0627\u0646\u06cc\u06a9\u06cc \u0627\u0633\u062a: \u0633\u06cc\u0646\u062a\u06a9\u0633 Pattern \u062a\u0642\u0631\u06cc\u0628\u0627\u064b \u06cc\u06a9\u0633\u0627\u0646 \u0627\u0633\u062a\u060c \u062f\u0648 API \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u062d\u06cc\u0646 Rollout \u0627\u0641\u0632\u0627\u06cc\u0634\u06cc \u0647\u0645\u200c\u0632\u06cc\u0633\u062a\u06cc \u06a9\u0646\u0646\u062f \u0648 \u0644\u0627\u0632\u0645 \u0646\u06cc\u0633\u062a \u0647\u0645\u0647\u200c\u0686\u06cc\u0632 \u0631\u0627 \u06cc\u06a9\u200c\u062c\u0627 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0646\u06cc\u062f. <strong>\u0631\u06cc\u0633\u06a9 \u0627\u0635\u0644\u06cc \u0646\u0645\u0627\u062f u \u0627\u0633\u062a<\/strong>\u2014\u06a9\u0647 \u062f\u0631 SimpleDateFormat \u06cc\u0639\u0646\u06cc \u0631\u0648\u0632-\u0647\u0641\u062a\u0647 \u0648 \u062f\u0631 DateTimeFormatter \u06cc\u0639\u0646\u06cc \u0633\u0627\u0644\u061b Pattern\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u0633\u062a\u0642\u06cc\u0645 \u0628\u06cc\u0646 API\u0647\u0627 \u06a9\u067e\u06cc \u0645\u06cc\u200c\u0634\u0648\u0646\u062f\u2014\u0628\u062f\u0648\u0646 \u0686\u06a9 \u06a9\u0631\u062f\u0646 \u0627\u06cc\u0646\u2014\u0628\u06cc\u200c\u0635\u062f\u0627 \u062e\u0631\u0648\u062c\u06cc \u0627\u0634\u062a\u0628\u0627\u0647 \u062a\u0648\u0644\u06cc\u062f \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0645\u0642\u0627\u06cc\u0633\u0647 \u06a9\u062f \u06a9\u0646\u0627\u0631-\u0647\u0645<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u06cc\u0646 \u0642\u0637\u0639\u0647 \u06a9\u0646\u0627\u0631-\u0647\u0645\u060c \u0631\u0641\u062a\u0627\u0631 Format \u0648 Parse \u0645\u0639\u0627\u062f\u0644 \u0631\u0627 \u062f\u0631 API\u0647\u0627\u06cc Legacy \u0648 \u0645\u062f\u0631\u0646 \u0646\u0634\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import java.text.ParseException;\nimport java.text.SimpleDateFormat;\nimport java.time.LocalDate;\nimport java.time.format.DateTimeFormatter;\nimport java.util.Date;\nimport java.util.Locale;\n\nString pattern = \"yyyy-MM-dd\";\nString input = \"2026-01-05\";\n\n\/\/ SimpleDateFormat (API \u0642\u062f\u06cc\u0645\u06cc java.util.Date)\nSimpleDateFormat legacyFormatter = new SimpleDateFormat(pattern, Locale.US);\nDate legacyParsed = legacyFormatter.parse(input);\nString legacyFormatted = legacyFormatter.format(new Date());\n\n\/\/ DateTimeFormatter (API \u0645\u062f\u0631\u0646 java.time)\nDateTimeFormatter modernFormatter = DateTimeFormatter.ofPattern(pattern, Locale.US);\nLocalDate modernParsed = LocalDate.parse(input, modernFormatter);\nString modernFormatted = modernFormatter.format(LocalDate.now());\n\nSystem.out.println(legacyParsed);\nSystem.out.println(legacyFormatted);\nSystem.out.println(modernParsed);\nSystem.out.println(modernFormatted);<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>Mon Jan 05 00:00:00 UTC 2026\n2026-01-05\n2026-01-05\n2026-01-05<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u062a\u0641\u0627\u0648\u062a\u200c\u0647\u0627\u06cc \u0633\u06cc\u0646\u062a\u06a9\u0633 Pattern \u0628\u06cc\u0646 \u062f\u0648 API<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u06cc\u0634\u062a\u0631 \u062d\u0631\u0648\u0641 Pattern \u0645\u0634\u0627\u0628\u0647\u200c\u0627\u0646\u062f\u061b \u0627\u0645\u0627 \u0628\u0631\u062e\u06cc \u0646\u0645\u0627\u062f\u0647\u0627 \u0645\u062a\u0641\u0627\u0648\u062a\u0646\u062f \u0648\u2014if \u0645\u0633\u062a\u0642\u06cc\u0645 \u06a9\u067e\u06cc \u0634\u0648\u0646\u062f\u2014\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u0645\u0647\u0627\u062c\u0631\u062a \u0631\u0627 \u0628\u0634\u06a9\u0646\u0646\u062f.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u06a9\u0627\u0631<\/th><th>Pattern \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 SimpleDateFormat<\/th><th>Pattern \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 DateTimeFormatter<\/th><th>\u0646\u06a9\u062a\u0647<\/th><\/tr><\/thead><tbody><tr><td>\u0633\u0627\u0644<\/td><td>yyyy<\/td><td>uuuu \u06cc\u0627 yyyy<\/td><td>\u062f\u0631 java.time \u0628\u0631\u0627\u06cc \u0633\u0627\u0632\u06af\u0627\u0631\u06cc \u0633\u0627\u0644\u0650 Proleptic\u060c uuuu \u0631\u0627 \u062a\u0631\u062c\u06cc\u062d \u0628\u062f\u0647\u06cc\u062f<\/td><\/tr><tr><td>\u0622\u0641\u0633\u062a\/\u0646\u0627\u0645 Timezone<\/td><td>z\u060c Z\u060c X<\/td><td>z\u060c Z\u060c x\u060c X<\/td><td>java.time \u0628\u06cc\u0646 variant\u0647\u0627\u06cc \u0622\u0641\u0633\u062a \u0628\u06cc\u0634\u062a\u0631\u06cc \u062a\u0641\u06a9\u06cc\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u062f (x \u0648 X)<\/td><\/tr><tr><td>\u0645\u062a\u0646 Literal<\/td><td>&#8216;T&#8217;<\/td><td>&#8216;T&#8217;<\/td><td>\u0647\u0631 \u062f\u0648 API \u0627\u0632 \u062a\u06a9-\u06a9\u0648\u062a\u06cc\u0634\u0646 \u0628\u0631\u0627\u06cc Literal \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f<\/td><\/tr><tr><td>\u0646\u0645\u0627\u062f u<\/td><td>\u0634\u0645\u0627\u0631\u0647 \u0631\u0648\u0632-\u0647\u0641\u062a\u0647<\/td><td>\u0633\u0627\u0644<\/td><td>\u062f\u0627\u0645 \u0634\u0646\u0627\u062e\u062a\u0647\u200c\u0634\u062f\u0647: u \u0628\u06cc\u0646 API\u0647\u0627 \u0645\u0639\u0646\u0627\u06cc\u0634 \u0639\u0648\u0636 \u0645\u06cc\u200c\u0634\u0648\u062f<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">\u0686\u06a9\u200c\u0644\u06cc\u0633\u062a \u0645\u0647\u0627\u062c\u0631\u062a \u06af\u0627\u0645\u200c\u0628\u0647\u200c\u06af\u0627\u0645<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u0632 \u0627\u06cc\u0646 \u0686\u06a9\u200c\u0644\u06cc\u0633\u062a \u0628\u0631\u0627\u06cc \u062a\u0628\u062f\u06cc\u0644 \u06cc\u06a9 Formatter \u062f\u0631 \u0647\u0631 \u0628\u0627\u0631 \u062f\u0631 Codebase\u0647\u0627\u06cc \u0645\u0648\u062c\u0648\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><code>import java.text.SimpleDateFormat;<\/code> \u0631\u0627 \u0628\u0627 <code>import java.time.format.DateTimeFormatter;<\/code> \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06a9\u0646\u06cc\u062f.<\/li>\n\n\n\n<li><code>new SimpleDateFormat(\"yyyy-MM-dd\")<\/code> \u0631\u0627 \u0628\u0627 <code>DateTimeFormatter.ofPattern(\"yyyy-MM-dd\")<\/code> \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06a9\u0646\u06cc\u062f.<\/li>\n\n\n\n<li><code>.parse()<\/code> \u0631\u0627\u2014\u0628\u0633\u062a\u0647 \u0628\u0647 \u062f\u0642\u062a \u0648\u0631\u0648\u062f\u06cc\u2014\u0628\u0627 <code>LocalDate.parse()<\/code> \u06cc\u0627 <code>LocalDateTime.parse()<\/code> \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06a9\u0646\u06cc\u062f.<\/li>\n\n\n\n<li><code>.format(date)<\/code> \u0631\u0627 \u0628\u0627 <code>formatter.format(localDate)<\/code> \u06cc\u0627 <code>formatter.format(localDateTime)<\/code> \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06a9\u0646\u06cc\u062f.<\/li>\n\n\n\n<li><code>new Date()<\/code> \u0631\u0627 \u062a\u0627 \u062c\u0627\u06cc \u0645\u0645\u06a9\u0646 \u062d\u0630\u0641 \u06a9\u0631\u062f\u0647 \u0648 \u0627\u0632 <code>LocalDate.now()<\/code> \u06cc\u0627 <code>Instant.now()<\/code> \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">DateTimeFormatter \u0645\u0646\u062d\u0635\u0631\u0627\u064b \u0628\u0627 \u0627\u0646\u0648\u0627\u0639 java.time \u06a9\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f (\u06cc\u0639\u0646\u06cc LocalDate\u060c LocalDateTime\u060c ZonedDateTime\u060c Instant). <strong>java.util.Date \u0631\u0627 \u0645\u0633\u062a\u0642\u06cc\u0645 \u0646\u0645\u06cc\u200c\u067e\u0630\u06cc\u0631\u062f.<\/strong> \u0627\u06af\u0631 \u06a9\u062f\u06cc \u062f\u0627\u0631\u06cc\u062f \u06a9\u0647 \u0647\u0646\u0648\u0632 \u0645\u0642\u0627\u062f\u06cc\u0631 java.util.Date \u062a\u0648\u0644\u06cc\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f\u2014\u0645\u062b\u0644\u0627\u064b \u0627\u0632 ORM \u06cc\u0627 JDBC Driver \u0642\u062f\u06cc\u0645\u06cc\u2014\u0627\u0628\u062a\u062f\u0627 \u0628\u0627 <code>date.toInstant()<\/code> \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0646\u06cc\u062f \u0642\u0628\u0644 \u0627\u0632 \u067e\u0627\u0633 \u062f\u0627\u062f\u0646 \u0628\u0647 DateTimeFormatter. \u062f\u0648 API \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u062d\u06cc\u0646 \u0645\u0647\u0627\u062c\u0631\u062a \u0627\u0641\u0632\u0627\u06cc\u0634\u06cc \u062f\u0631 \u0647\u0645\u0627\u0646 Codebase \u0647\u0645\u200c\u0632\u06cc\u0633\u062a\u06cc \u06a9\u0646\u0646\u062f\u061b \u0644\u0627\u0632\u0645 \u0646\u06cc\u0633\u062a \u0647\u0645\u0647\u200c\u0686\u06cc\u0632 \u0631\u0627 \u06cc\u06a9\u200c\u062c\u0627 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0646\u06cc\u062f. DateTimeFormatter \u0647\u0645 ParseException \u0631\u0627 \u0628\u0627 <code>java.time.format.DateTimeParseException<\/code> \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u0645\u06cc\u200c\u06a9\u0646\u062f\u2014which \u06cc\u06a9 Exception \u0627\u0632\u0646\u0648\u0639 Unchecked \u0627\u0633\u062a\u061b \u067e\u0633 \u0628\u0644\u0627\u06a9\u0647\u0627\u06cc try-catch \u0627\u062e\u062a\u06cc\u0627\u0631\u06cc \u0645\u06cc\u200c\u0634\u0648\u0646\u062f \u0627\u0645\u0627 \u0647\u0645\u0686\u0646\u0627\u0646 \u062f\u0631 \u06a9\u062f Parse \u06a9\u0631\u062f\u0646\u0650 \u067e\u0631\u0648\u062f\u0627\u06a9\u0634\u0646 \u062a\u0648\u0635\u06cc\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u0633\u0648\u0627\u0644\u0627\u062a \u0645\u062a\u062f\u0627\u0648\u0644<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u062a\u0641\u0627\u0648\u062a SimpleDateFormat \u0648 DateFormat \u062f\u0631 \u062c\u0627\u0648\u0627 \u0686\u06cc\u0633\u062a\u061f<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">DateFormat\u060c \u06a9\u0644\u0627\u0633 \u0627\u0646\u062a\u0632\u0627\u0639\u06cc\u200c\u0627\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0642\u0631\u0627\u0631\u062f\u0627\u062f Format \u06a9\u0631\u062f\u0646 \u062a\u0627\u0631\u06cc\u062e\/\u0632\u0645\u0627\u0646 \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc\u200c\u06a9\u0646\u062f. SimpleDateFormat \u0632\u06cc\u0631\u06a9\u0644\u0627\u0633 \u0639\u06cc\u0646\u06cc\u0650 \u0622\u0646 \u0627\u0633\u062a \u06a9\u0647 Format \u06a9\u0631\u062f\u0646 \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 Pattern \u0633\u0641\u0627\u0631\u0634\u06cc \u0631\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f. SimpleDateFormat \u0631\u0627 \u0645\u0633\u062a\u0642\u06cc\u0645 \u062f\u0631 \u06a9\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f\u061b DateFormat \u0631\u0627 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u0646\u0648\u0639 Reference\u0627\u06cc \u0648\u0642\u062a\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f \u0647\u0631 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc\u200c\u0627\u06cc \u0631\u0627 \u0628\u067e\u0630\u06cc\u0631\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u0622\u06cc\u0627 SimpleDateFormat \u0627\u0645\u0646-\u0628\u0631\u0627\u06cc-Thread \u0627\u0633\u062a\u061f<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0646\u0647. Instance\u0647\u0627\u06cc SimpleDateFormat \u0627\u0645\u0646-\u0628\u0631\u0627\u06cc-Thread \u0646\u06cc\u0633\u062a\u0646\u062f. \u0627\u0634\u062a\u0631\u0627\u06a9 \u06cc\u06a9 Instance \u0628\u06cc\u0646 Thread\u0647\u0627\u2014\u0628\u062f\u0648\u0646 Synchronization\u2014\u0628\u0647 \u0646\u062a\u0627\u06cc\u062c Parse \u0648 Format \u063a\u06cc\u0631\u0642\u0627\u0628\u0644-\u067e\u06cc\u0634\u200c\u0628\u06cc\u0646\u06cc \u0645\u0646\u062c\u0631 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0627\u0632 <code>ThreadLocal&lt;SimpleDateFormat&gt;<\/code> \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f\u061b \u06cc\u0627 \u0622\u0646 \u0631\u0627 \u0628\u0627 <code>java.time.format.DateTimeFormatter<\/code>\u2014\u06a9\u0647 Immutable \u0648 \u0627\u0645\u0646-\u0628\u0631\u0627\u06cc-Thread \u0627\u0633\u062a\u2014\u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u0646\u0645\u0627\u06cc\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u0686\u0637\u0648\u0631 \u0631\u0634\u062a\u0647 \u062a\u0627\u0631\u06cc\u062e \u0631\u0627 \u0628\u0627 Format \u06cc\u0639\u0646\u06cc dd-MM-yyyy \u0628\u0627 SimpleDateFormat \u067e\u0627\u0631\u0633 \u06a9\u0646\u0645\u061f<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">SimpleDateFormat\u0627\u06cc \u0628\u0627 Pattern \u06cc\u0639\u0646\u06cc &#8220;dd-MM-yyyy&#8221; \u0628\u0633\u0627\u0632\u06cc\u062f\u061b \u0633\u067e\u0633 <code>.parse(yourString)<\/code> \u0631\u0627 \u0635\u062f\u0627 \u0628\u0632\u0646\u06cc\u062f. \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0631\u0627 \u062f\u0631 \u0628\u0644\u0627\u06a9 try-catch \u0628\u0631\u0627\u06cc ParseException \u0628\u067e\u06cc\u0686\u06cc\u062f. \u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u062f \u0631\u0634\u062a\u0647 \u0648\u0631\u0648\u062f\u06cc\u2014including \u06a9\u0627\u0631\u0627\u06a9\u062a\u0631\u0647\u0627\u06cc \u062c\u062f\u0627\u06a9\u0646\u0646\u062f\u0647\u2014\u062f\u0642\u06cc\u0642\u0627\u064b \u0628\u0627 Pattern \u0645\u0637\u0627\u0628\u0642\u062a \u062f\u0627\u0631\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u0686\u0637\u0648\u0631 Date \u0631\u0627 \u0628\u0647 Timezone \u0645\u062a\u0641\u0627\u0648\u062a\u06cc \u0628\u0627 SimpleDateFormat \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0646\u0645\u061f<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>.setTimeZone(TimeZone.getTimeZone(\"America\/New_York\"))<\/code> \u0631\u0627 \u0631\u0648\u06cc Instance \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 SimpleDateFormat \u062e\u0648\u062f\u062a\u0627\u0646 \u0642\u0628\u0644 \u0627\u0632 \u0635\u062f\u0627 \u0632\u062f\u0646 <code>.format(date)<\/code> \u0635\u062f\u0627 \u0628\u0632\u0646\u06cc\u062f. \u0634\u06cc\u0621 Date \u0632\u06cc\u0631\u0628\u0646\u0627\u06cc\u06cc\u060c \u0645\u06cc\u0644\u06cc\u200c\u062b\u0627\u0646\u06cc\u0647\u200c\u0647\u0627\u06cc UTC \u0631\u0627 \u0646\u06af\u0647 \u0645\u06cc\u200c\u062f\u0627\u0631\u062f\u061b Formatter \u0622\u0641\u0633\u062a Timezone \u0631\u0627 \u062d\u06cc\u0646 \u062e\u0631\u0648\u062c\u06cc \u0627\u0639\u0645\u0627\u0644 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Pattern \u06cc\u0639\u0646\u06cc &#8220;yyyy-MM-dd&#8217;T&#8217;HH:mm:ssZ&#8221; \u0686\u0647 \u0686\u06cc\u0632\u06cc \u062a\u0648\u0644\u06cc\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f\u061f<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Timestamp\u0627\u06cc \u0633\u0627\u0632\u06af\u0627\u0631 \u0628\u0627 ISO 8601 \u062a\u0648\u0644\u06cc\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f\u061b \u0645\u062b\u0644\u0627\u064b 2024-06-15T14:30:00+0530. \u062d\u0631\u0641 T\u060c \u06a9\u0627\u0631\u0627\u06a9\u062a\u0631 Literal\u0627\u06cc \u0627\u0633\u062a \u06a9\u0647 \u062f\u0631 \u062a\u06a9-\u06a9\u0648\u062a\u06cc\u0634\u0646 \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0634\u062f\u0647. Z \u0647\u0645 \u0622\u0641\u0633\u062a Timezone \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 RFC 822 \u0631\u0627 \u0646\u0634\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u0686\u0637\u0648\u0631 \u0627\u0632 SimpleDateFormat \u0628\u0647 DateTimeFormatter \u0645igrate \u06a9\u0646\u0645\u061f<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>new SimpleDateFormat(\"yyyy-MM-dd\")<\/code> \u0631\u0627 \u0628\u0627 <code>DateTimeFormatter.ofPattern(\"yyyy-MM-dd\")<\/code> \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06a9\u0646\u06cc\u062f. \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc\u0647\u0627\u06cc <code>.parse()<\/code> \u0631\u0627 \u0628\u0627 <code>LocalDate.parse()<\/code> \u06cc\u0627 <code>LocalDateTime.parse()<\/code> \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06a9\u0646\u06cc\u062f. \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc\u0647\u0627\u06cc <code>.format(date)<\/code> \u0631\u0627 \u0628\u0627 <code>formatter.format(localDate)<\/code> \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06a9\u0646\u06cc\u062f. \u062f\u0642\u062a \u06a9\u0646\u06cc\u062f \u06a9\u0647 DateTimeFormatter \u062f\u0631 \u0628\u0631\u062e\u06cc \u0632\u0645\u06cc\u0646\u0647\u0647\u0627\u2014to\u200c\u062c\u0627\u06cc y\u2014\u0627\u0632 u \u0628\u0631\u0627\u06cc \u0633\u0627\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u0686\u0631\u0627 SimpleDateFormat \u062a\u0627\u0631\u06cc\u062e \u0646\u0627\u0645\u0639\u062a\u0628\u0631 \u0631\u0627\u2014\u0628\u062f\u0648\u0646 \u067e\u0631\u062a\u0627\u0628 Exception\u2014\u067e\u0627\u0631\u0633 \u0645\u06cc\u200c\u06a9\u0646\u062f\u061f<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0647\u200c\u0637\u0648\u0631 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636\u060c SimpleDateFormat \u0627\u0632 \u062d\u0627\u0644\u062a Parse \u06a9\u0631\u062f\u0646\u0650 Lenient \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f\u061b \u06a9\u0647 \u0645\u0642\u0627\u062f\u06cc\u0631 \u062e\u0627\u0631\u062c-\u0627\u0632-\u0628\u0627\u0632\u0647 \u0631\u0627\u2014to\u200c\u062c\u0627\u06cc \u0631\u062f \u06a9\u0631\u062f\u0646\u2014\u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0642\u0628\u0644 \u0627\u0632 Parse \u06a9\u0631\u062f\u0646\u060c <code>.setLenient(false)<\/code> \u0631\u0627 \u0635\u062f\u0627 \u0628\u0632\u0646\u06cc\u062f \u062a\u0627 \u0627\u0639\u062a\u0628\u0627\u0631\u0633\u0646\u062c\u06cc \u0633\u062e\u062a\u200c\u06af\u06cc\u0631\u0627\u0646\u0647 \u0627\u0639\u0645\u0627\u0644 \u0634\u062f\u0647 \u0648 \u0631\u0648\u06cc \u0648\u0631\u0648\u062f\u06cc \u0646\u0627\u0645\u0639\u062a\u0628\u0631\u060c ParseException \u067e\u0631\u062a\u0627\u0628 \u0634\u0648\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u0686\u0637\u0648\u0631 \u062a\u0627\u0631\u06cc\u062e \u0631\u0627 \u0628\u0627 Locale \u062e\u0627\u0635\u06cc \u0628\u0627 SimpleDateFormat \u0641\u0631\u0645\u062a \u06a9\u0646\u0645\u061f<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Locale \u0631\u0627 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u0622\u0631\u06af\u0648\u0645\u0627\u0646 \u062f\u0648\u0645 \u0628\u0647 Constructor \u067e\u0627\u0633 \u0628\u062f\u0647\u06cc\u062f: <code>new SimpleDateFormat(\"dd MMMM yyyy\", Locale.FRENCH)<\/code>. \u0627\u06cc\u0646\u060c \u0646\u0627\u0645\u0647\u0627\u06cc \u0645\u0627\u0647 \u0648 \u0631\u0648\u0632 \u0631\u0627 \u0628\u0647 \u0632\u0628\u0627\u0646 \u0645\u0634\u062e\u0635\u200c\u0634\u062f\u0647 Render \u0645\u06cc\u200c\u06a9\u0646\u062f\u061b \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0628\u0647 \u0645\u0646\u0627\u0637\u0642 \u0645\u062a\u0639\u062f\u062f\u06cc \u0633\u0631\u0648\u06cc\u0633 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f \u062d\u06cc\u0627\u062a\u06cc \u0627\u0633\u062a.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u0646\u062a\u06cc\u062c\u0647\u200c\u06af\u06cc\u0631\u06cc<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u06cc\u0646 \u0631\u0627\u0647\u0646\u0645\u0627 \u0645\u0628\u0627\u0646\u06cc DateFormat \u0648 SimpleDateFormat\u060c \u0633\u06cc\u0646\u062a\u06a9\u0633 Pattern\u060c \u0631\u0648\u0646\u062f\u0647\u0627\u06cc \u06a9\u0627\u0631\u06cc Format \u0648 Parse\u060c \u0631\u0641\u062a\u0627\u0631 Timezone\u060c Render \u06a9\u0631\u062f\u0646 \u0622\u06af\u0627\u0647-\u0627\u0632-Locale\u060c \u0645\u0633\u0627\u0626\u0644 Thread Safety \u0648 \u0645\u0647\u0627\u062c\u0631\u062a \u0628\u0647 DateTimeFormatter \u0631\u0627 \u067e\u0648\u0634\u0634 \u062f\u0627\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u062d\u0627\u0644\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f Formatter \u062f\u0631\u0633\u062a \u0631\u0627 \u0628\u0631\u0627\u06cc \u06a9\u062f Legacy \u0648 \u0645\u062f\u0631\u0646 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f\u060c \u0648\u0631\u0648\u062f\u06cc \u0631\u0627 \u0628\u0627 \u0627\u0639\u062a\u0628\u0627\u0631\u0633\u0646\u062c\u06cc \u0633\u062e\u062a\u200c\u06af\u06cc\u0631\u0627\u0646\u0647 \u062f\u0641\u0627\u0639\u06cc Parse \u06a9\u0646\u06cc\u062f\u060c \u0627\u0632 Drift \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 Locale \u0648 Timezone \u062f\u0631 \u0645\u062d\u06cc\u0637\u0647\u0627\u06cc \u0633\u0631\u0648\u0631\u06cc \u0627\u062c\u062a\u0646\u0627\u0628 \u06a9\u0646\u06cc\u062f\u061b \u0648 \u0631\u06cc\u0633\u06a9\u0647\u0627\u06cc \u0647\u0645\u200c\u0632\u0645\u0627\u0646\u06cc \u0631\u0627 \u0627\u0632 Formatter\u0647\u0627\u06cc \u062a\u0627\u0631\u06cc\u062e \u0627\u0634\u062a\u0631\u0627\u06a9\u06cc \u062d\u0630\u0641 \u0646\u0645\u0627\u06cc\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0645\u0642\u062f\u0645\u0647 SimpleDateFormat \u0645\u0642\u0627\u062f\u06cc\u0631 java.util.Date \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0631\u0634\u062a\u0647\u200c\u0647\u0627\u06cc Pattern \u0633\u0641\u0627\u0631\u0634\u06cc Format \u0648 Parse \u0645\u06cc\u200c\u06a9\u0646\u062f\u061b \u0648 DateFormat \u0647\u0645 API \u067e\u0627\u06cc\u0647 \u0627\u0646\u062a\u0632\u0627\u0639\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc Format \u06a9\u0631\u062f\u0646 \u0622\u06af\u0627\u0647-\u0627\u0632-Locale\u0650 \u062a\u0627\u0631\u06cc\u062e \u0648 \u0632\u0645\u0627\u0646 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u0632 \u0627\u06cc\u0646 API\u0647\u0627 \u0648\u0642\u062a\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u06a9\u062f Legacy \u062c\u0627\u0648\u0627 \u0631\u0627 \u0646\u06af\u0647 \u0645\u06cc\u200c\u062f\u0627\u0631\u06cc\u062f \u06a9\u0647 \u0647\u0645\u0686\u0646\u0627\u0646 \u0628\u0647 java.util.Date \u0648\u0627\u0628\u0633\u062a\u0647 \u0627\u0633\u062a\u061b \u0628\u0631\u0627\u06cc \u06a9\u062f \u062c\u062f\u06cc\u062f\u060c DateTimeFormatter \u0627\u0632 &hellip;<\/p>\n","protected":false},"author":9,"featured_media":7072,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[190],"tags":[],"class_list":["post-7071","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programming"],"_links":{"self":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/posts\/7071","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/comments?post=7071"}],"version-history":[{"count":1,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/posts\/7071\/revisions"}],"predecessor-version":[{"id":7073,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/posts\/7071\/revisions\/7073"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/media\/7072"}],"wp:attachment":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/media?parent=7071"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/categories?post=7071"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/tags?post=7071"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}