@@ -89,7 +89,7 @@ class PermissiveDateFormatter: DateFormatter, @unchecked Sendable {
89
89
// MARK: - ISO8601 formatter
90
90
91
91
/// Formatter for ISO8601 date specification.
92
- class ISO8601DateFormatter : PermissiveDateFormatter , @unchecked Sendable {
92
+ final class ISO8601DateFormatter : PermissiveDateFormatter , @unchecked Sendable {
93
93
/// List of date formats supported for ISO8601.
94
94
override var dateFormats : [ String ] {
95
95
[
@@ -112,7 +112,7 @@ class ISO8601DateFormatter: PermissiveDateFormatter, @unchecked Sendable {
112
112
// MARK: - RFC3339 formatter
113
113
114
114
/// Formatter for RFC3339 date specification.
115
- class RFC3339DateFormatter : PermissiveDateFormatter , @unchecked Sendable {
115
+ final class RFC3339DateFormatter : PermissiveDateFormatter , @unchecked Sendable {
116
116
/// List of date formats supported for RFC3339.
117
117
override var dateFormats : [ String ] {
118
118
[
@@ -133,10 +133,14 @@ class RFC3339DateFormatter: PermissiveDateFormatter, @unchecked Sendable {
133
133
}
134
134
}
135
135
136
+ extension RFC3339DateFormatter {
137
+ static let shared = RFC3339DateFormatter ( )
138
+ }
139
+
136
140
// MARK: - RFC822 formatter
137
141
138
142
/// Formatter for RFC822 date specification with backup formats.
139
- class RFC822DateFormatter : PermissiveDateFormatter , @unchecked Sendable {
143
+ final class RFC822DateFormatter : PermissiveDateFormatter , @unchecked Sendable {
140
144
/// List of date formats supported for RFC822.
141
145
override var dateFormats : [ String ] {
142
146
[
@@ -195,7 +199,7 @@ class RFC822DateFormatter: PermissiveDateFormatter, @unchecked Sendable {
195
199
// MARK: - RFC1123 formatter
196
200
197
201
/// Formatter for RFC1123 date specification.
198
- class RFC1123DateFormatter : PermissiveDateFormatter , @unchecked Sendable {
202
+ final class RFC1123DateFormatter : PermissiveDateFormatter , @unchecked Sendable {
199
203
/// List of date formats supported for RFC1123.
200
204
override var dateFormats : [ String ] {
201
205
[
@@ -230,8 +234,8 @@ enum DateSpec {
230
234
231
235
// MARK: - FeedDateFormatter
232
236
233
- /// A formatter that handles multiple date specifications (ISO8601, RFC3339, RFC822).
234
- class FeedDateFormatter : DateFormatter , @unchecked Sendable {
237
+ /// A formatter that handles multiple date specifications (ISO8601, RFC3339, RFC822, RFC1123 ).
238
+ final class FeedDateFormatter : DateFormatter , @unchecked Sendable {
235
239
// MARK: Lifecycle
236
240
237
241
/// Initializes the date formatter with a specified date format.
@@ -256,7 +260,7 @@ class FeedDateFormatter: DateFormatter, @unchecked Sendable {
256
260
lazy var iso8601Formatter : ISO8601DateFormatter = . init( )
257
261
258
262
/// RFC3339 date formatter.
259
- lazy var rfc3339Formatter : RFC3339DateFormatter = . init ( )
263
+ lazy var rfc3339Formatter : RFC3339DateFormatter = . shared
260
264
261
265
/// RFC822 date formatter.
262
266
lazy var rfc822Formatter : RFC822DateFormatter = . init( )
0 commit comments