我试图用点将字符串拆分,但我无法得到答案
String dob ="05.08.2010";
String arr[] = dob.split(".");
System.out.println(arr[0]+":"+arr[1]+":"+arr[2]);
拆分日期/时间字符串的可能重复项
尝试这个
String arr[] = dob.split("\\.");
即,您需要使用双斜杠来使点转义,因为点将匹配正则表达式中的任何字符。还要注意,双反斜杠用于在正则表达式中创建单个反斜杠。
String.split采用正则表达式模式。 .与正则表达式中的任何字符匹配。因此,您基本上是在说"拆分此字符串,以任何字符作为分隔符"。你要:
String arr[] = dob.split("\\.");
...实际上是\.的正则表达式模式,其中反斜杠将点转义。就Java编译器而言,需要在字符串文字中将反斜杠加倍以避开反斜杠。
或者,您可以使用
String arr[] = dob.split(Pattern.quote("."));
...或者更好地使用日期解析/格式化代码(例如SimpleDateFormat或DateTimeFormatter)来解析和格式化日期。毕竟,这就是它的作用-最好早发现而不是晚发现数据问题(例如" 99.99.9999")。
如果您只想打印出来,也可以尝试
System.out.println(Arrays.toString(dob.split("\\.")));
System.out.println(dob.replace(".",":"));
在split函数中,请勿使用.,因为它是正则表达式的特殊字符,需要转义:\\.
您也可以使用
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
String dateInString ="05.08.2010";
Date date = sdf.parse(dateInString);
编辑
现在您可以使用来访问日/月/年(请参阅此线程)
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH);
int day = cal.get(Calendar.DAY_OF_MONTH);
我问如何分割日期,以便可以分别使用dd MM yyyy
您可以使用date对象分别获取日/月/年(java日期文档)。 例如,您可以执行date.getMonth()。
您绝对不应该使用date.getMonth()等。不推荐使用这些方法已经有20年了,这是有充分的理由的。
我没看见它。 但是您仍然可以从日期对象获取日/月/年(请参阅编辑)