Results for category "Java"

[Java]IISログの時間を日本時間にする

こんな感じでいいのだろうか。拡張性は一切考慮しなかった。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import java.util.*;
import java.text.*;
 
public class IISLog {
 
    private static final DateFormat FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 
    public static String JST(String time) throws ParseException {
        Date date = FORMAT.parse(time);
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        cal.add(Calendar.HOUR, 9);
        return FORMAT.format(cal.getTime());
    }
 
    public static void main(String[] args) {
        try {
            System.out.println(IISLog.JST("2008-08-27 23:00:00"));
        } catch (ParseException ex) {
            ex.printStackTrace();
        }
    }
}

[Java]ソースファイルでの宣言

とりあえず、Javaでアクセスログ解析のプログラムが書けるようになるまで勉強する。
まずJavaがどういうプログラム言語なのかはwikipediaを読んで分かったつもりになっておく。

ソースファイルの最上位階層(という呼び方でいいのかは不明)では、以下の5つの宣言ができる。

・インポート宣言
[java]
import java.io.*;
[/java]

Perlでいうuse Module;みたいなもんだと理解。違うのは*でワイルドカード指定できる事。
ワイルドカードで指定しても、そのパッケージ配下のクラスが全てインポートされるわけじゃなくて、完全修飾名で書かなくて済むだけ。
[java]
// new java.io.FileReader(file);
new FileReader(file);
[/java]

・パッケージ宣言
[java]
package net.sukuna.java;
[/java]

Perlでいうpackage Net::Sukuna::Java::Module;みたいなもんだと理解。
→小文字で書く
→命名規則の慣習はURLを逆にしたもの+機能
→パッケージ名=クラスパス(所定の位置に置かないとクラスファイルが見つけられない)
→同じパッケージ名だからといって、関連性や依存関係があるとは限らない。

・クラス(class)宣言
[java]
class Class1 {}
[/java]

・インタフェース(interface)宣言
[java]
interface Interface1 {}
[/java]

・列挙型(enum)宣言
[java]
enum Enum1 {}
[/java]

インタフェースも列挙型も内部的にはクラスらしい。この辺は後で。