24시간 형식으로 Xcode Swift am/pm 시간
am/pm 포맷 시간을 24시간 포맷 시간으로 변환하려고 합니다.
6:35 PM to 18:35
놀이터에서 이 코드를 시도해봤는데 시간을 혼자 두면 작동하지 않는 것 같습니다.
let dateAsString = "02/12/15, 6:35 PM"
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "HH"
let date = dateFormatter.dateFromString(dateAsString) //returns nil
이 일을 어떻게 해야 하는지 아는 사람?
NSDateFormatter와 "h:mma" 형식을 사용하여 날짜로 변환하고 "를 사용하여 문자열로 다시 변환하기만 하면 됩니다.HH:mm" 형식입니다.이 자료를 숙지하려면 이 날짜 형식 안내서를 참조하십시오.
let dateAsString = "6:35 PM"
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "h:mm a"
dateFormatter.locale = Locale(identifier: "en_US_POSIX") // fixes nil if device time in 24 hour format
let date = dateFormatter.dateFromString(dateAsString)
dateFormatter.dateFormat = "HH:mm"
let date24 = dateFormatter.stringFromDate(date!)
스위프트 3
24시간 ~ 12시간의 시간 형식
let dateAsString = "13:15"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "HH:mm"
let date = dateFormatter.date(from: dateAsString)
dateFormatter.dateFormat = "h:mm a"
let Date12 = dateFormatter.string(from: date!)
print("12 hour formatted Date:",Date12)
출력은 12시간 형식이 될 것입니다 날짜: 오후 1:
시간 형식 12시간 - 24시간
let dateAsString = "1:15 PM"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "h:mm a"
let date = dateFormatter.date(from: dateAsString)
dateFormatter.dateFormat = "HH:mm"
let Date24 = dateFormatter.string(from: date!)
print("24 hour formatted Date:",Date24)
출력은 24시간 형식이 됩니다. 날짜: 13:15
스위프트 3 *
12시간(즉, AM 및 PM)을 24시간 형식으로 변환하는 코드는 다음을 포함합니다.
시간:분:초:오전/오후 ~ 시간:분:초
func timeConversion24(time12: String) -> String {
let dateAsString = time12
let df = DateFormatter()
df.dateFormat = "hh:mm:ssa"
let date = df.date(from: dateAsString)
df.dateFormat = "HH:mm:ss"
let time24 = df.string(from: date!)
print(time24)
return time24
}
입력
07:05:45 PM
산출량
19:05:45
유사하게
24시간을 12시간(즉, AM 및 PM) 형식으로 변환하는 코드는 다음을 포함합니다.
시간:분:시간(초):분:초:AM/PM
func timeConversion12(time24: String) -> String {
let dateAsString = time24
let df = DateFormatter()
df.dateFormat = "HH:mm:ss"
let date = df.date(from: dateAsString)
df.dateFormat = "hh:mm:ssa"
let time12 = df.string(from: date!)
print(time12)
return time12
}
입력
19:05:45
산출량
07:05:45 PM
다음은 추가 형식이 포함된 답변입니다.
Xcode 12, Swift 5.3 **
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "HH:mm:ss"
var dateFromStr = dateFormatter.date(from: "12:16:45")!
dateFormatter.dateFormat = "hh:mm:ss a 'on' MMMM dd, yyyy"
//Output: 12:16:45 PM on January 01, 2000
dateFormatter.dateFormat = "E, d MMM yyyy HH:mm:ss Z"
//Output: Sat, 1 Jan 2000 12:16:45 +0600
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
//Output: 2000-01-01T12:16:45+0600
dateFormatter.dateFormat = "EEEE, MMM d, yyyy"
//Output: Saturday, Jan 1, 2000
dateFormatter.dateFormat = "MM-dd-yyyy HH:mm"
//Output: 01-01-2000 12:16
dateFormatter.dateFormat = "MMM d, h:mm a"
//Output: Jan 1, 12:16 PM
dateFormatter.dateFormat = "HH:mm:ss.SSS"
//Output: 12:16:45.000
dateFormatter.dateFormat = "MMM d, yyyy"
//Output: Jan 1, 2000
dateFormatter.dateFormat = "MM/dd/yyyy"
//Output: 01/01/2000
dateFormatter.dateFormat = "hh:mm:ss a"
//Output: 12:16:45 PM
dateFormatter.dateFormat = "MMMM yyyy"
//Output: January 2000
dateFormatter.dateFormat = "dd.MM.yy"
//Output: 01.01.00
//Output: Customisable AP/PM symbols
dateFormatter.amSymbol = "am"
dateFormatter.pmSymbol = "Pm"
dateFormatter.dateFormat = "a"
//Output: Pm
// Usage
var timeFromDate = dateFormatter.string(from: dateFromStr)
print(timeFromDate)
아래는 솔루션의 신속한 3가지 버전입니다.
let dateAsString = "6:35:58 PM"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "h:mm:ss a"
let date = dateFormatter.date(from: dateAsString)
dateFormatter.dateFormat = "HH:mm:ss"
let date24 = dateFormatter.string(from: date!)
print(date24)
Swift 버전 3.0.2, Xcode 버전 8.2.1(8C1002)(12시간 형식):
func getTodayString() -> String{
let formatter = DateFormatter()
formatter.dateFormat = "h:mm:ss a "
formatter.amSymbol = "AM"
formatter.pmSymbol = "PM"
let currentDateStr = formatter.string(from: Date())
print(currentDateStr)
return currentDateStr
}
출력: 오전 12:41:42
자유롭게 의견을 말씀해주세요.감사해요.
이 기능을 날짜 변환에 사용합니다. 장치가 24/12시간 형식으로 작동할 때 정상적으로 작동합니다.
https://developer.apple.com/library/archive/qa/qa1480/_index.html 을 참조하십시오.
func convertDateFormatter(fromFormat:String,toFormat:String,_ dateString: String) -> String{
let formatter = DateFormatter()
formatter.locale = Locale(identifier: "en_US_POSIX")
formatter.dateFormat = fromFormat
let date = formatter.date(from: dateString)
formatter.dateFormat = toFormat
return date != nil ? formatter.string(from: date!) : ""
}
불행하게도 애플 우선순위는 장치 날짜 형식입니다. 그래서 어떤 경우에는 당신이 입력한 것과 반대로, 당신의 형식을 12시간으로 빠르게 변경하세요.
이 문제를 해결하려면 dateFormatFromTemplate 대신 setLocalizedDateFormatFromTemplate를 사용하여 AM 및 PM을 숨깁니다.
let formatter = DateFormatter()
formatter.setLocalizedDateFormatFromTemplate("HH:mm:ss a")
formatter.amSymbol = ""
formatter.pmSymbol = ""
formatter.timeZone = TimeZone(secondsFromGMT: 0)
var prettyDate = formatter.string(from: Date())
https://prograils.com/posts/the-curious-case-of-the-24-hour-time-format-in-swift 에서 더 자세한 정보를 볼 수 있는 매우 유용한 게시물을 확인할 수 있습니다.
여기 다른 방법에 대한 코드가 있습니다.
스위프트 3용
func amAppend(str:String) -> String{
var temp = str
var strArr = str.characters.split{$0 == ":"}.map(String.init)
var hour = Int(strArr[0])!
var min = Int(strArr[1])!
if(hour > 12){
temp = temp + "PM"
}
else{
temp = temp + "AM"
}
return temp
}
let calendar = Calendar.current
let hours = calendar.component(.hour, from: Date())
let minutes = calendar.component(.minute, from: Date())
let seconds = calendar.component(.second, from: Date())
제 경우에는 레이블을 일반 시간 형식으로 업데이트한 다음 선택한 시간의 24시간 형식을 저장하여 다른 작업을 수행하는 기능을 사용합니다.
여기 내 코드가...
func timeUpdate(sender: NSDate)
{
let timeSave = NSDateFormatter() //Creating first object to update time label as 12hr format with AM/PM
timeSave.timeStyle = NSDateFormatterStyle.ShortStyle //Setting the style for the time selection.
self.TimeShowOutlet.text = timeSave.stringFromDate(sender) // Getting the string from the selected time and updating the label as 1:40 PM
let timeCheck = NSDateFormatter() //Creating another object to store time in 24hr format.
timeCheck.dateFormat = "HH:mm:ss" //Setting the format for the time save.
let time = timeCheck.stringFromDate(sender) //Getting the time string as 13:40:00
self.timeSelectedForCheckAvailability = time //At last saving the 24hr format time for further task.
}
이 함수를 작성한 후 날짜/시간 선택기에서 시간을 선택하는 위치에서 이 함수를 호출할 수 있습니다.
감사합니다, 이것이 도움이 되길 바랍니다.
이것은 우리의 친구들이 대답하는 것과 비슷합니다: https://stackoverflow.com/a/43801717/2796837 하지만 우리의 모든 인터넷 친구들의 아이디어를 사용하여 저는 다음과 같은 더 완벽한 단일 해결책을 생각해냈습니다:
let amPmFormat = "h:mm a"
let twentyFourHFormat = "HH:mm"
func hourMinuteParser(date: Date) -> KotlinInt{
let formatter = DateFormatter()
if DateFormatter.dateFormat(fromTemplate: "j",options:0, locale: Locale.current)!.contains("a") {
formatter.dateFormat = amPmFormat
}else{
formatter.dateFormat = twentyFourHFormat
}
let stringTime = formatter.string(from: date)
let time = formatter.date(from: stringTime)
formatter.dateFormat = twentyFourHFormat
let time24 = formatter.string(from: time!)
let timeWithoutSpecialCharacters = time24.replacingOccurrences(of: ":", with: "")
let int2 = Int32(timeWithoutSpecialCharacters) ?? 0
return KotlinInt(int: int2)
}
이렇게 하면 시간이 오는 형식과 관계없이 시간을 구문 분석하여 HH:mm로 출력할 수 있습니다. 세 번째 형식 변경을 원하는 대로 변경할 수 있습니다.
언급URL : https://stackoverflow.com/questions/29321947/xcode-swift-am-pm-time-to-24-hour-format
'sourcecode' 카테고리의 다른 글
데이터베이스 스키마가 null 가능한 열에 대해 동기화되지 않았습니다. (0) | 2023.08.11 |
---|---|
활동 중 카메라 및 디스플레이에서 이미지 캡처 (0) | 2023.08.11 |
{0}, {0,}을(를) 사용하여 어레이를 초기화하시겠습니까? (0) | 2023.08.11 |
텍스트 편집 시 Android에서 이메일 주소 확인 (0) | 2023.08.11 |
mariadb 스토어드 프로시저에서 PHP 변수 설정; SQLSTATE [42S22]:열을 찾을 수 없음 (0) | 2023.08.11 |