如何从字符串中提取日、月和年值 [如 18/08/2012]。我尝试使用 SimpleDateFormat,但它返回一个 Date 对象,并且我观察到所有 Get 方法都已弃用。有没有更好的方法来做到这一点?
谢谢
我个人会使用Joda Time,这让生活变得相当简单。特别是,这意味着您无需担心Calendar
a 的时区与 a 的时区SimpleDateFormat
- 您只需解析为 a LocalDate
,这就是数据真正向您显示的内容。这也意味着您不必担心月份是从 0 开始的 :)
Joda Time 使许多日期/时间操作更加愉快。
import java.util.*;
import org.joda.time.*;
import org.joda.time.format.*;
public class Test {
public static void main(String[] args) throws Exception {
DateTimeFormatter formatter = DateTimeFormat.forPattern("dd/MM/yyyy")
.withLocale(Locale.UK);
LocalDate date = formatter.parseLocalDate("18/08/2012");
System.out.println(date.getYear()); // 2012
System.out.println(date.getMonthOfYear()); // 8
System.out.println(date.getDayOfMonth()); // 18
}
}
简单地去String.split()
,
String str[] = "18/08/2012".split("/");
int day = Integer.parseInt(str[0]);
int month = Integer.parseInt(str[1]);
..... and so on
这应该让您无需添加外部罐子即可
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
Date parse = sdf.parse("18/08/2012");
Calendar c = Calendar.getInstance();
c.setTime(parse);
System.out.println(c.get(Calendar.MONTH) + c.get(Calendar.DATE) + c.get(Calendar.YEAR));
按如下方式创建该日期之外的 java.util.Calendar 对象并提取日期部分:
Calendar cal = Calendar.getInstance();
cal.setTime(<date from simple-date-format).
cal.get(Calendar.MONTH);
ETC。,
另一种方法可能是使用Calendar对象get(Calendar.MONT)
例子:
Calendar cal = Calendar.getInstance();
cal.setTime(dateObj).
cal.get(Calendar.MONTH);
(或者)
您也可以使用String.split()。
使用它并传递日期值
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy",Locale.getDefault());
Date parse = sdf.parse("18/01/2018");
Calendar calendar = Calendar.getInstance();
calendar.setTime(parse);
int date = calendar.get(Calendar.DATE);
//+1 Is Important Because if the month is January then coming 0 so Add +1
int month = calendar.get(Calendar.MONTH)+1;
int year = calendar.get(Calendar.YEAR);
System.out.println("Date:"+date +":Month:"+ month + ":Year:"+year);
在其中,字符串以元素的形式存储在一个数组中,并且在 split() 函数的帮助下,我将它分离并从数组 str[] 中检索并存储在 3 个不同的变量日、月和年中。
导入 java.util.*;
public class date {
public static void main(String[] args) throws Exception {
String str[] = "18/08/2012".split("/");
int day = Integer.parseInt(str[0]);
int month = Integer.parseInt(str[1]);
int year = Integer.parseInt(str[2]);
System.out.println(day);
System.out.println(month);
System.out.println(year);
}
}