1

I have a one string "2013-1-31 08:25 PM"

私はスペースから分割したいと:

スペースの後に分割すると、「2013-1-31 08」と「25 PM」になります

今、私は「2013-1-31」と「08」が欲しい

新しい文字列の 08 の値を取得できませんが、「2013-1-31」を取得します

String view_datee = view_date.getText().toString();

               String[] separated = view_datee.split(":");
               String first =separated[0];
               String second=separated[1]; 


               String[] newSeperated = first.split(" ");
               String third = newSeperated[0]; 
               String four=   newSeperated[1];



               Log.i("first",first);
               Log.i("second",second);

               Log.i("third", third);
               Log.i("four", four);

08 という 4 つの値を取得する方法がわかりません。

4

6 に答える 6

3

日付/カレンダーを使用した例を次に示します (デスクトップ Java を使用しますが、簡単に転置可能です)。

public static void main(String args[]) throws Exception {
    String data = "2013-1-31 08:25 PM";
    DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd hh:mm a");
    Calendar cal = Calendar.getInstance();
    cal.setTime(fmt.parse(data));
    //2013-1-31
    System.out.println(new SimpleDateFormat("yyyy-M-dd").format(cal.getTime()));
    //20
    System.out.println(cal.get(Calendar.HOUR_OF_DAY));
    //08
    System.out.println(new SimpleDateFormat("hh").format(cal.getTime()));
}

必要に応じて、08 または 20 のいずれかを取得できることに08:25 PM注意してください。20:05私の例では両方を示しました。

于 2013-01-30T10:57:11.987 に答える
1

これを試して、

public static void main(String[] args) {
        String str = "2013-1-31 08:25 PM";
        System.out.println("[Date:"+str.split(" ")[0]+"][Hours:"+str.split(":")[0].split(" ")[1]+"]");
    }

出力、

run:
[Date:2013-1-31][Hours:08]
BUILD SUCCESSFUL (total time: 1 second)
于 2013-01-30T10:54:57.127 に答える
0

以下のコードを確認してください。正常に動作しています

String date = "2013-1-31 08:25 PM";
    String[] split = date.split(":");
    System.out.println(split[0]+"date:::"  + split[1] );
    String[] Datesplit = split[0].split(" ");
    System.out.println(Datesplit[0]+"date splited:::"  + Datesplit[1] );

以下の出力

2013-1-31 08date:::25 PM
2013-1-31date splited:::08
于 2013-01-30T10:59:30.267 に答える
0

私はあなたのコードをチェックアウトし、適切に動作しています..ここに私が入力して実行したものを投稿しています:

    String teststr = "2013-1-31 08:25 PM";
    System.out.println("teststr: " + teststr);
    String[] separated = teststr.split(":");
    String first = separated[0];
    String second = separated[1];
    String[] newSeperated = first.split(" ");
    String third = newSeperated[0];
    String four = newSeperated[1];
    System.out.println("first : "+first);
    System.out.println("second : "+second);
    System.out.println("third : "+third);
    System.out.println("fourth : "+four);

次の出力が得られます: teststr: 2013-1-31 08:25 PM 最初: 2013-1-31 08 2番目: 25 PM 3番目: 2013-1-31 4番目: 08

于 2013-01-30T11:09:35.040 に答える
0

公式のJavadocから、split引数として RegExp を取ります。

したがって、引数" "として使用することはできません。split

代わりに、 を使用"\s"して文字列を空白で区切る必要があります。

次に、コードは次のようになります。

           String[] separated = view_datee.split(":");
           String first =separated[0];
           String second=separated[1]; 


           String[] newSeperated = first.split("\\s");
           String third = newSeperated[0]; 
           String four=   newSeperated[1];



           Log.i("first",first);
           Log.i("second",second);

           Log.i("third", third);
           Log.i("four", four);
于 2013-01-30T10:56:41.133 に答える
0

文字列が PM または AM で終わっていると確信していますか?

String s= "2013-1-31 08:25 PM";

        String newStr=s.substring(s.indexOf(" ")+1,s.lastIndexOf(" "));
        System.out.println(newStr);
        String result[]=newStr.split(":");
        System.out.println(result[0]);
        System.out.println(result[1]);
于 2013-01-30T10:58:49.800 に答える