スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書く事で広告が消せます。

NSDateFormatterを使用する

とりあえずではあるが、NSDateFormatterを使用してみる。

NSDate *date;
NSDateFormatter *dateFormatter;
dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
[dateFormatter setTimeStyle:NSDateFormatterNoStyle];

[dateFormatter stringFromDate:date];

とりあえずこれで、NSDateFormatterを使用して、文字列として値を返せる。
上記例では、時間は表示せず、日付をMediumStyleで出力する。
ちなみに、

[dateFormatter setDateFormat:@"HH:mm 'on' EEEE MMMM d"];
  09:00 on Monday june 12

[dateFormatter setDateFormat:@"yyyy/MM/dd HH:mm"];
  2009/01/12 12:34


といった風に表示される。

NSDateを文字列に変換する

NSDate型の値を文字列に変換するには下記コードにて。

NSDate *date;
[date description];

小数点以下の処理について

小数点以下を、四捨五入、切り上げ、切り捨て、の処理をどうするかがわからなかった。

エクセルくらいしか普段扱わないので、round , roundup , rounddown くらいしか

思いつかなかったが、Cは違うのね。

四捨五入は round (double)

切り上げは ceil (double)

切り捨ては floor (double)

こんなことに大分時間をついやしてしまった・・・

UITableViewのスクロールをロックするには

UITableViewのスクロールをロックする方法です。

カテゴリはUITableViewというよりは、UIScrollViewですが。

UITableView *tableView = [[UITableView alloc] init];

tableView.scrollEnabled = NO;


これでスクロールしなくなります。

theme : プログラミング
genre : コンピュータ

UIDatePickerの言語表示を変えようと頑張ったがダメだった

UIDatePickerの言語表示(?)を変えるために試行錯誤したが、結局うまく行かなかった。


やりたかったことは、言語環境が英語の状態で、設定を変えることなく、
表示されるUIDatePickerは日本語表記にしたかったのだが、上手くいかなかった。

いろいろ試した結果を残しておく。
言語環境の地域に応じた書式を「日本」にすると、日本語表示でUIDatePickerが表示される。
UIDatePicker-L-02.png

まずはNSCalendarについて。
使ったことが無いので、どういう働きをしているのか良く分かっていない。
リファレンスを見ると、週始まりの曜日だとか、そういったことを管理しているようなので
今回の項目とは関係なさそうではあるが。


言語環境を書式を日本にして、currentCalendarを見てみる。
NSLog(@"%@",[[NSCalendar currentCalendar] calendarIdentifier]);
上記コードを実行したら、ログにはgregorianと表示される。
言語環境の書式を英語にしてもログにはgregorianと表示された。
どうやらやはり関係ないようだ。

ちなみに、日本のカレンダーを作成してログに排出してみると、
NSCalendar *tempCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:@"japanese"];
NSLog(@"%@",[tempCalendar calendarIdentifier]);
結果はjapaneseであった。

当然ではるが、このtempCalendarをUIDatePicker.calendarに入れてやっても
表示は変わらなかった。
datePicker.calendar = tempCalendar;

しかし下記コードの結果はきちんtのjapaneseになっている。
NSLog(@"%@",[datePicker.calendar calendarIdentifier]);

ひつこいようだが、やはりUIDatePickerの表示とCalendarは関係ないようだ。
何が変わったかというと、tableViewにdatePickerの値を使用して日付を表示していたが、
この年数の値がおかしくなった。datePickerで2008年を示していても、ラベルに
表示される値は3996年とか表示される。
UIDatePicker-L-03.png


NSCalendarは関係ないということで、今度はNSLocaleに目をつけて、
NSLocaleを作ってUIDatePickerに入れてやったが、結果は同じで、
UIDatePickerの表現は変わらなかった。
NSLocale *tempLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"ja-JP"];
datePicker.locale = tempLocale;

というか、datePicker.localeが書き変わっていなかった。
NSLog(@"tempLocale :%@",[tempLocale localeIdentifier]);
上記で、datePickerのlocale設定を見てみると、tempLocaleを入れてやったと
思っていたが、結果は「en-US」のままだった。

NSLocaleに関する勉強不足というところか・・・

2週間程、毎日これを頑張ったが、結局目的達成できず。
もう諦めた。
実は興味があっただけ、ということから始めたことで、必ずしも必要ではない。
しかし気になる・・・

theme : プログラミング
genre : コンピュータ

プロフィール

Author:碧『あお』
Cocoa , Objective-C , iPhone SDK
どれにあたるか分かりませんが、iPhoneのプログラミングをしている過程で気づいたことをメモしていきます。

最新記事
全記事表示リンク

全ての記事を表示する

カテゴリ
月別アーカイブ
FC2カウンター
検索フォーム
ご紹介
アフィリエイト・SEO対策

FC2動画

私書箱/私設私書箱

eropeg
RSSリンクの表示
リンク
ご紹介
 

 
Powered By FC2ブログ

今すぐブログを作ろう!

Powered By FC2ブログ

ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード
ご紹介