この形式の文字列に日付があります"Tue, 23 Oct 2012 01:05:00 +0000"。ここで、日付形式を「 TUE OCT 23 2012 1:05AM 」に変換したいと思います。これを行う最善の方法は何ですか?
3 に答える
この方法を使用します。文字列を渡して、必要に応じて日付形式を設定します。ご希望のお日にちをお返しします。
- (NSDate *) getDateFromString:(NSString *) inputDate
{
NSDateFormatter *dateForm = [[NSDateFormatter alloc] init];
[dateForm setDateFormat:@"yyyy-MM-dd"];
NSDate *dateSelected = [dateForm dateFromString:inputDate];
[dateForm release];
return dateSelected;
}
それがうまくいくことを願っています。
================================================== =============
日付形式のオプションは次のとおりです。
これで、NSDateFormatter で使用できるすべての文字列形式が必要になります。これがそれです
a: 午前/午後
A: 0~86399999 (日のミリ秒)
c/cc: 1~7 (曜日)
ccc: 日/月/火/水/木/金/土
cccc: 日曜日/月曜日/火曜日/水曜日/木曜日/金曜日/土曜日
d: 1~31 (月の日を 0 で埋めたもの)
D: 1~366 (0 パディングされた年間通算日)
e: 1~7 (0 パディングされた曜日)
E~EEE: 日/月/火/水/木/金/土
EEEE: 日曜日/月曜日/火曜日/水曜日/木曜日/金曜日/土曜日
F: 1~5 (月の週を 0 で埋め、週の最初の日 = 月曜日)
g: ユリウス日 (紀元前 4713 年 1 月 1 日からの日数)
G~GGG: BC/AD (元号省略)
GGGG:キリスト以前/アノ・ドミニ
h: 1~12 (0 パディング時間 (12hr))
H: 0~23 (0 パディング時間 (24 時間))
k: 1~24 (0 パディング時間 (24hr)
K: 0~11 (0 パディング時間 (12hr))
L/LL: 1~12 (0 パッド月)
LLL: 1月/2月/3月/4月/5月/6月/7月/8月/9月/10月/11月/12月
LLLL: 1月/2月/3月/4月/5月/6月/7月/8月/9月/10月/11月/12月
m: 0~59 (0 分をパディング)
M/MM: 1~12 (0 埋め月)
MMM: 1 月/2 月/3 月/4 月/5 月/6 月/7 月/8 月/9 月/10 月/11 月/12 月
MMMM: 1 月/2 月/3 月/4 月/5 月/6 月/7 月/8 月/9 月/10 月/11 月/12 月
q/qq: 1~4 (0 パディング クォーター)
qqq: Q1/Q2/Q3/Q4
qqqq: 第 1 四半期/第 2 四半期/第 3 四半期/第 4 四半期
Q/QQ: 1~4 (0 パディング クォーター)
QQQ: Q1/Q2/Q3/Q4
QQQQ: 第 1 四半期/第 2 四半期/第 3 四半期/第 4 四半期
s: 0~59 (0 秒をパディング)
S: (1 秒未満で四捨五入)
u: (0 パディングされた年)
v~vvv: (一般的な GMT タイムゾーンの略語)
vvvv: (一般的な GMT タイムゾーン名)
w: 1 ~ 53 (年の 0 埋め込み週、最初の曜日 = 日曜日、注: 年の最初の週は昨年の最後の日曜日から始まります)
W: 1~5 (月の週を 0 で埋め、週の最初の日 = 日曜日)
y/yyyy: (通年)
yy/yyy: (2 桁の年)
Y/YYYY: (通年、年の第 1 週の日曜日から開始)
YY/YYY: (年の第 1 週の日曜日から始まる 2 桁の年)
z~zzz: (特定の GMT タイムゾーンの省略形)
zzzz: (特定の GMT タイムゾーン名)
Z: +0000 (RFC 822 タイムゾーン)
==========================================
書式はお好みで設定してください。
NSString *dateStr = @"Tue, 25 May 2010 12:53:58 +0000";
// Convert string to date object
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"EE, d LLLL yyyy HH:mm:ss Z"];
NSDate *date = [dateFormat dateFromString:dateStr];
でもまず
- を作成して、日付文字列を
オブジェクト
NSDateFormatter
に変換します。NSDate
- 2番目を作成して
NSDateFormatter
(または最初のフォーマット文字列を変更して)NSDate
、文字列に戻します。
これは少し役に立ちますか?
編集
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
[dateFormatter setDateFormat:@"yyyy-MM-ddHH:mm:ss"];
NSDate *date = [dateFormatter dateFromString:@"2011-04-0600:28:27"];
この次のメソッドを使用して、日付を渡します...
-(NSString *)StringFromDate:(NSString *)DateLocal{
DateLocal = [self trimString:DateLocal];
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:@"EEE, dd LLL yyyy hh:mm:ss Z"];
NSDate *date = [dateFormatter dateFromString: DateLocal];
NSString *tt = [dateFormatter stringFromDate:date];
NSDate *dateReturn = [dateFormatter dateFromString:tt];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"EEE LLL dd yyyy hh:mm a"];
NSString *dateString = [dateFormat stringFromDate:dateReturn];
NSLog(@"Date is HERE =====>> %@",dateString);
[dateFormat release];
return dateString;
}