基本的に、現在の日付と時刻を個別に取得し、次の形式で取得する必要があります。
2009-04-26 11:06:54
次のコードは、同じトピックに関する別の質問から生成されます
now:| 2009-06-01 23:18:23 +0100 | dateString:| 2009年6月1日23:18 | 解析済み:| 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形式の文字列は nicode形式 です。リンクの後ろには、上記のすべての文字の意味を説明する表があり、独自の文字を作成できます。
そしてもちろん、日付フォーマッターを使い終わったらリリースすることを忘れないでください。上記のコードは、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
return 2015-12-17
date
yyyy-MMM-dd
return 2015-Dec-17
date
yy-MM-dd
return 15-12-17
date
dd-MM-yy
return 17-12-15
date
dd-MM-yyyy
return 17-12-2015
date
yyyy-MMM-dd HH:mm:ss
return 2015-Dec-17 08:07:13
date and time
yyyy-MMM-dd HH:mm
return 2015-Dec-17 08:07
date and time
詳細については、 今すぐクリック のデータと時刻の形式
ありがとうございました.....
新しいことは何もありませんが、私の方法を共有したいです:
+(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)!;
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
ニーズに合わせてテンプレートを試してください。例とドキュメント here 必要なテンプレートの作成を支援します。
たとえば、DateFormatter
で使用する場合は、TableView
をキャッシュすることをお勧めします。アイデアを与えるために、1000個の日付をループするには、toString(template: String)
を使用した0.05秒と比較して、上記のmyFormatter.string(from: Date)
関数を使用して0.5秒かかりました。