0

私の Logger クラスでは、すべてのエラー、情報、およびデバッグ メッセージを .csv ファイルに書き込みます。句読点を含む文字列をログに記録したい。次のように、現在の Android バージョンを返すメソッドがあります。

public String getAndroidVersion() {
        androidVersion = android.os.Build.VERSION.RELEASE;
        return androidVersion; 
}

ロギングは次のようにコーディングされます。

logToFile(String.format("%s;%s;%s;%s;%s\r\n", new Date().toString(), level,_processName, message, "\""+utils.getAndroidVersion()+"\""));

最後の列には 4.2.1 の Android バージョンが含まれていると予想されますが、何らかの形で次のようなデータに変換されます04.02.2001。メソッドの戻り値getAndroidVersionが正しいことはわかっています。上記の例でわかるように、文字をエスケープしようとしました。

ここで何が起こっているのですか? 間違ったエスケープ文字を使用していませんか?

ありがとう!

編集 。.csv ファイルを開くと、notepad++次のようになります。

Date;Level;Process;Message;AndroidVersion
Mon Jan 07 13:37:51 CET 2013;INFO;Splash Screen;Application Started;"4.2.1"
Mon Jan 07 13:38:00 CET 2013;INFO;Bluetooth MessageHandler;Incomming file from VMw-1001500;"4.2.1"
Mon Jan 07 13:38:13 CET 2013;INFO;Bluetooth MessageHandler;File Received From VMw-1001500;"4.2.1"
Mon Jan 07 13:38:29 CET 2013;ERROR;BluetoothCommunicator;socket closed;"4.2.1"
Mon Jan 07 13:38:29 CET 2013;ERROR;BluetoothCommunicator;read failed, socket might closed, read ret: -1;"4.2.1"

これはあるべきように見えますが、Excel は私の .csv を何らかの形でフォーマットしますか?

4

1 に答える 1

1

これは、日付のように見える文字列を日付として自動的に解析する Excel の "機能" です。CSV に問題はありません。

Excelでそれをオフにする方法はわかりませんが、この質問が役立つかもしれません: Excel changes date format . CSVをインポートすると、「日付列をテキストとして事前にフォーマットする」ことができると思います。YMMV。

于 2013-01-07T13:27:13.713 に答える