我有下面的代码,它产生了这个:
2012-07-28 17:30:23
这就是我想要的。但是如果我想自己提取所有数字来分配变量,我是否需要制作一个RegEx或者是否有某种方法可以简单地从SimpleDateFormat中提取这些数字?
SimpleDateFormat dateFormatUCT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
dateFormatUCT.setTimeZone(TimeZone.getTimeZone("UCT"));
//Time in UCT
String date = dateFormatUCT.format(new Date());
System.out.println(date);
答案 0 :(得分:9)
你有一个日期。将if转换为GregorianCalendar,并将每个字段都询问GregorianCalendar:
GregorianCalendar cal = new GregorianCalendar(TimeZone.getTimeZone("UCT")); // or UTC?
cal.setTime(theDate); // if you want something other than the current date
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH) + 1; // months start at 0, duh!
...
答案 1 :(得分:5)
您不需要正则表达式。您只需获取日期并将其提供给日历,然后使用get()
方法获取每个字段。
Calendar c = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
c.setTime(new Date());
System.out.println(c.get(Calendar.YEAR));
System.out.println(c.get(Calendar.MONTH));
System.out.println(c.get(Calendar.DATE));
等
答案 2 :(得分:1)
您无法从SimpleDateFormat
afaik中提取它们,但您可以使用Java.util.Calendar
使用其get(Calendar.{DAY_OF_MONTH|MONTH|YEAR|HOUR|MINUTE|SECOND})
方法提取日期组件。 Calendar
对象提供了一个采用日期的setTime()
方法。因此,您可以使用相同的日期使用SimpleDateFormat
进行格式化,并使用Calendar
提取日期组件。
答案 3 :(得分:1)
1。使用split()
方法
2。这样做......
String s = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
String[] arr = s.split(" ");
String newDStr = arr[0];
String newTStr = arr[1];
String[] DateArr = newDStr.split("-"); // Holds Date values.
String[] TimeArr = newTStr.split(":"); // Holds Time values