Skip to content

Commit 9cd7c53

Browse files
committed
Use 24-hour meeting times and numeric dates
1 parent cdae245 commit 9cd7c53

31 files changed

Lines changed: 97 additions & 105 deletions

File tree

β€ŽWireCalling/Sources/WireCallingUI/Views/WireMeetings/MeetingForm/MeetingFormView.swiftβ€Ž

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ struct MeetingFormView: View {
211211
Text(label)
212212
Spacer()
213213
pill(
214-
text: date.wrappedValue.formatted(.dateTime.day().month(.abbreviated).year()),
214+
text: DateFormatter.meetingDate.string(from: date.wrappedValue),
215215
isSelected: expandedField == dateField
216216
) {
217217
toggleExpansion(dateField)
@@ -220,7 +220,7 @@ struct MeetingFormView: View {
220220
.disabled(!isDateFieldEnabled)
221221
.accessibilityHidden(!isDateFieldEnabled)
222222
pill(
223-
text: date.wrappedValue.formatted(date: .omitted, time: .shortened),
223+
text: DateFormatter.meetingTime.string(from: date.wrappedValue),
224224
isSelected: expandedField == timeField
225225
) {
226226
toggleExpansion(timeField)
@@ -291,6 +291,8 @@ private struct MinuteIntervalTimePicker: UIViewRepresentable {
291291
let datePicker = UIDatePicker()
292292
datePicker.datePickerMode = .time
293293
datePicker.preferredDatePickerStyle = .wheels
294+
// Keep 24-hour wheels even when the device uses a 12-hour clock.
295+
datePicker.locale = Locale(identifier: "en_US_POSIX@hours=h23")
294296
datePicker.minuteInterval = minuteInterval
295297
datePicker.minimumDate = range.lowerBound
296298
datePicker.maximumDate = maximumDate

β€ŽWireCalling/Sources/WireCallingUI/Views/WireMeetings/MeetingsView/MeetingsFormatter.swiftβ€Ž

Lines changed: 10 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -33,19 +33,14 @@ package struct MeetingsFormatter: MeetingsFormatterProtocol {
3333
let calendar = Calendar.current
3434

3535
if calendar.isDate(date, inSameDayAs: now) {
36-
return Strings.Header.today + " (\(DateFormatter.dayHeader.string(from: date)))"
36+
return Strings.Header.today + " (\(DateFormatter.meetingDate.string(from: date)))"
3737
} else {
38-
return DateFormatter.dayHeader.string(from: date)
38+
return DateFormatter.meetingDate.string(from: date)
3939
}
4040
}
4141

4242
package func timeRange(from start: Date, to end: Date) -> String {
43-
let calendar = Calendar.current
44-
let startPeriod = calendar.component(.hour, from: start) / 12
45-
let endPeriod = calendar.component(.hour, from: end) / 12
46-
let isSamePeriod = startPeriod == endPeriod
47-
let startFormatter = isSamePeriod ? DateFormatter.meetingTimeWithoutPeriod : DateFormatter.meetingTime
48-
let startString = startFormatter.string(from: start)
43+
let startString = DateFormatter.meetingTime.string(from: start)
4944
let endString = DateFormatter.meetingTime.string(from: end)
5045
return "\(startString) - \(endString)"
5146
}
@@ -54,30 +49,20 @@ package struct MeetingsFormatter: MeetingsFormatterProtocol {
5449

5550
// MARK: - Helpers
5651

57-
private extension DateFormatter {
58-
59-
static let dayHeader: DateFormatter = {
60-
let formatter = DateFormatter()
61-
formatter.locale = .current
62-
formatter.dateFormat = "EEEE, MMMM d"
63-
return formatter
64-
}()
65-
66-
}
67-
68-
private extension DateFormatter {
52+
extension DateFormatter {
6953

70-
static let meetingTimeWithoutPeriod: DateFormatter = {
54+
static let meetingDate: DateFormatter = {
7155
let formatter = DateFormatter()
72-
formatter.locale = .current
73-
formatter.dateFormat = "hh:mm"
56+
formatter.locale = Locale(identifier: "en_US_POSIX")
57+
formatter.calendar = Calendar(identifier: .gregorian)
58+
formatter.dateFormat = "dd.MM.yyyy"
7459
return formatter
7560
}()
7661

7762
static let meetingTime: DateFormatter = {
7863
let formatter = DateFormatter()
79-
formatter.locale = .current
80-
formatter.dateFormat = "hh:mm a"
64+
formatter.locale = Locale(identifier: "en_US_POSIX")
65+
formatter.dateFormat = "HH:mm"
8166
return formatter
8267
}()
8368

Lines changed: 2 additions & 2 deletions
Loading
Lines changed: 2 additions & 2 deletions
Loading
Lines changed: 2 additions & 2 deletions
Loading
Lines changed: 2 additions & 2 deletions
Loading
Lines changed: 2 additions & 2 deletions
Loading
Lines changed: 2 additions & 2 deletions
Loading
Lines changed: 2 additions & 2 deletions
Loading
Lines changed: 2 additions & 2 deletions
Loading

0 commit comments

Comments
Β (0)