こんにちは。エンジニアのKです。
solrのレスポンスに含まれる時間文字列をTimestamp型に変換しようとしたときに、少しはまったので覚書です。
solrに格納される時刻はデフォルトでUTC時間とのことで、ぱっと見、日本時間から9時間前の表記となります。
solrのdate型カラムのレスポンス値は以下のような文字列になっています。
2015-11-18T10:00:00Z
この文字列を以下のようにしてTimestamp型に変換します。
import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.TimeZone;
(略)
SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
...
2015年11月18日水曜日
2015年10月7日水曜日
Java初心者がはまったこと2(ラッパークラス)
こんにちは。Java初心者のWebエンジニアKです。
PHPのノリでJavaを書いていたらはまったこと第二弾として、今回はラッパークラスについて書きたいと思います。
■intとIntegerではまる
Javaのソースコードを見ていると、例えば数値を扱う変数を作るとき、以下の2通りの宣言があることに気付きました。
int num = 100;
Integer num2 = 100;
両者の違いを正しく理解せずに、その日の気分で使い分けていたら見事にはまりました。
■intとIntegerの違い
intはプリミティブ型のひとつで、値(intの場合は特に数値)のみを扱うための型です。 初期値は0です。
一方Integerはラッパークラスと呼ばれる参照型のひとつで、intを値だけでなく「振る舞い」も合わせて扱えるように定義した型となります。
「振る舞い」は平たく言うとクラスメソッド(toStringやvalueOf)のことですね。...
Java初心者がはまったこと(文字列比較)
はじめまして。WebエンジニアのKと申します。
これまでサーバサイドはほぼPHPで実装してきましたが、最近ではJavaへの挑戦も始めました。
慣れたPHPの感覚でJavaを書き始めると、思わぬところではまってしまうことがあり、
ここでは自戒の念を込めてはまったポイントを記しておこうと思います。
■文字列比較ではまる
こんなif文を書いて、判定がtrueとならず、頭を悩ませていました。
※str = “hoge”だと、この単純な例の場合たまたま判定がtrueになってしまうので、わかりにくいですが”hog”と”e”にわけて宣言しています。【参考】
String str = "hog";
str += "e";
if (str == "hoge") { // false...
// do something
}
PHPだと文字列はプリミティブ型なので、上記のような文字列が格納された変数(str)と文字列リテラル(“hoge”)の比較でうまくいくのですが、...
登録:
投稿 (Atom)