1

我有一个字符串“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

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:25 PM20:05可以根据需要获得 08 或 20。我在我的例子中展示了两者。

于 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

来自官方Javadocsplit将 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 回答
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 first : 2013-1-31 08 second : 25 PM 第三 : 2013-1-31 第四 : 08

于 2013-01-30T11:09:35.040 回答