0

「1520056800」を持つ文字列を長い日付に変換しています。しかし、これを変換するために NumberFormatException を取得しています

私を助けてください。

long expiryDateMS = Long.parseLong(responseArray[0].replaceAll(" ", ""));
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-mm-dd");
Date date = new Date(expiryDateMS);

スタックトレース

09-02 00:52:28.984: E/AndroidRuntime(12025): Caused by: java.lang.NumberFormatException: 1520056800
09-02 00:52:28.984: E/AndroidRuntime(12025):    at java.lang.Long.parse(Long.java:353)
09-02 00:52:28.984: E/AndroidRuntime(12025):    at java.lang.Long.parseLong(Long.java:344)
09-02 00:52:28.984: E/AndroidRuntime(12025):    at java.lang.Long.parseLong(Long.java:311)
09-02 00:52:28.984: E/AndroidRuntime(12025):    at com.example.astrill_openvpn.MainOnOffActivity.onCreate(MainOnOffActivity.java:99)
09-02 00:52:28.984: E/AndroidRuntime(12025):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
09-02 00:52:28.984: E/AndroidRuntime(12025):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
4

2 に答える 2

3

文字列に見えない文字または無効な文字が含まれている可能性があります。詳細については、この投稿を試してください。

于 2013-09-01T19:33:12.563 に答える
0

このコードは仕事をするはずです。したがって、エンコーディング/特殊文字の問題があると思います。これを試して、実際の ASCII エンコードされた番号があることを確認してください。

String str = responseArray[0].replaceAll(" ", "");
for (int i = 0; i < str.length(); ++i)
{
    char a = str.charAt(i);
    if (!('0' <= a && a <= '9')) System.out.println(a + " is not a valid digit!");
}
于 2013-09-01T19:32:56.577 に答える