NSDate を年、月、日、時、分、秒の両方の特定のスタイルにフォーマットする
-
06-09-2019 - |
質問
基本的に、現在の日付と時刻を次の形式で個別に取得する必要があります。
2009-04-26 11:06:54
以下のコードは、同じトピックに関する別の質問からのもので、
now: |2009-06-01 23:18:23 +0100| dateString: |Jun 01, 2009 23:18| parsed: |2009-06-01 23:18:00 +0100|
ほぼこれですが、曜日と時間を分けたいと思っています。
NSDateFormatter *format = [[NSDateFormatter alloc] init];
[format setDateFormat:@"MMM dd, yyyy HH:mm"];
NSDate *now = [[NSDate alloc] init];
NSString *dateString = [format stringFromDate:now];
NSDateFormatter *inFormat = [[NSDateFormatter alloc] init];
[inFormat setDateFormat:@"MMM dd, yyyy"];
NSDate *parsed = [inFormat dateFromString:dateString];
NSLog(@"\n"
"now: |%@| \n"
"dateString: |%@| \n"
"parsed: |%@|", now, dateString, parsed);
解決
iPhoneのフォーマット文字列は Unicode形式のです。リンクの後ろにあなたがあなた自身を構築することができますので、どのような平均以上のすべての文字を説明する表である。
あなたが彼らと終わったら、そして、もちろん、あなたの日付フォーマッタを解放することを忘れないでください。上記のコードはformat
、now
、及びinFormat
をリーク。
他のヒント
これは私が使用したものです。
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd"];
NSDateFormatter *timeFormat = [[NSDateFormatter alloc] init];
[timeFormat setDateFormat:@"HH:mm:ss"];
NSDate *now = [[NSDate alloc] init];
NSString *theDate = [dateFormat stringFromDate:now];
NSString *theTime = [timeFormat stringFromDate:now];
NSLog(@"\n"
"theDate: |%@| \n"
"theTime: |%@| \n"
, theDate, theTime);
[dateFormat release];
[timeFormat release];
[now release];
あなたはそれにあなたの日付を渡し、このメソッドを使用することができます。
-(NSString *)getDateFromString:(NSString *)string
{
NSString * dateString = [NSString stringWithFormat: @"%@",string];
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"your current date format"];
NSDate* myDate = [dateFormatter dateFromString:dateString];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"your desired format"];
NSString *stringFromDate = [formatter stringFromDate:myDate];
NSLog(@"%@", stringFromDate);
return stringFromDate;
}
NSDateFormatter *dateformat = [[NSDateFormatter alloc] init];
[dateformat setDateFormat:@"Your Date Format"];
返すようにフォーマット設定されている....
yyyy-MM-dd
リターン2015-12-17
日
yyyy-MMM-dd
リターン2015-Dec-17
日
yy-MM-dd
リターン15-12-17
日
dd-MM-yy
リターン17-12-15
日
dd-MM-yyyy
リターン17-12-2015
日
yyyy-MMM-dd HH:mm:ss
リターン2015-Dec-17 08:07:13
日時
yyyy-MMM-dd HH:mm
リターン2015-Dec-17 08:07
日時
より詳細データと時刻の形式についてはための今すぐクリックしてください。に
タグ.....ありがとう
何も新しいが、まだ私の方法を共有したい。
+(NSString*) getDateStringFromSrcFormat:(NSString *) srcFormat destFormat:(NSString *)
destFormat scrString:(NSString *) srcString
{
NSString *dateString = srcString;
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
//[dateFormatter setDateFormat:@"MM-dd-yyyy"];
[dateFormatter setDateFormat:srcFormat];
NSDate *date = [dateFormatter dateFromString:dateString];
// Convert date object into desired format
//[dateFormatter setDateFormat:@"yyyy-MM-dd"];
[dateFormatter setDateFormat:destFormat];
NSString *newDateString = [dateFormatter stringFromDate:date];
return newDateString;
}
SWIFT用の の
var dateString:String = "2014-05-20";
var dateFmt = NSDateFormatter()
// the format you want
dateFmt.dateFormat = "yyyy-MM-dd"
var date1:NSDate = dateFmt.dateFromString(dateString)!;
スイフト3
extension Date {
func toString(template: String) -> String {
let formatter = DateFormatter()
formatter.dateFormat = DateFormatter.dateFormat(fromTemplate: template, options: 0, locale: NSLocale.current)
return formatter.string(from: self)
}
}
使用法
let now = Date()
let nowStr0 = now.toString(template: "EEEEdMMM") // Tuesday, May 9
let nowStr1 = now.toString(template: "yyyy-MM-dd") // 2017-05-09
let nowStr2 = now.toString(template: "HH:mm:ss") // 17:47:09
ニーズに合わせてテンプレートを試してみてください。例とドキュメント ここ 必要なテンプレートの作成に役立ちます。
注記
キャッシュすることもできます DateFormatter
で使用する予定がある場合は TableView
例えば。参考までに、1000 件以上の日付をループするのに時間がかかりました 0.5秒 上記を使用して toString(template: String)
関数と比較して 0.05秒 を使用して myFormatter.string(from: Date)
.
NSDate *date = [NSDate date];
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-MM-dd"]
NSString *dateString = [df stringFromDate:date];
[df setDateFormat:@"hh:mm:ss"];
NSString *hoursString = [df stringFromDate:date];
はこれだけです、あなたはそれあなたが望むすべてを持っています。