我有一根绳子“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。
答案 0 :(得分: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 PM
为20:05
,因此您可以根据需要获得08或20。我在我的例子中展示了两者。
答案 1 :(得分: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)
答案 2 :(得分: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);
答案 3 :(得分:0)
你确定String以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]);
答案 4 :(得分: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
答案 5 :(得分: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 第二:下午25点 第三名:2013-1-31 第四名:08