3

我从 MySql 获取日期,格式为“yyyy-mm-dd hh:mm:ss” 我只想分割日期和时间,分别显示日期和时间。时间如 hh:mm,日期如 yyyy-mm-dd。

4

8 回答 8

9

您还可以使用 StringTokenizer 类,它允许您将字符串分解为标记。您可以指定将分隔标记的字符。

例子:

String date = "yyyy-mm-dd hh:mm:ss";
StringTokenizer tk = new StringTokenizer(date);

String date = tk.nextToken();  // <---  yyyy-mm-dd
String time = tk.nextToken();  // <---  hh:mm:ss
于 2013-04-16T08:53:46.197 回答
2

这取决于您将如何使用它,但您可以String.split(" ")获取这两个部分或将其解析为日期/日历并提取日期和时间。

例如:

String d = "2013-05-11 13:59:50";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd hh:mm:ss");

try {

    Calendar c = Calendar.getInstance();
    c.setTime(sdf.parse(d));

    Log.d("DEBUG", "year:" + c.get(Calendar.YEAR));
    //...
} catch (ParseException e) {
}

另外,正如 njzk2 所说:另一种方法是在表中存储一个长值,以便您可以将其直接提取到日期/日历中

Calendar c = Calendar.getInstance();
c.setTimeInMillis(yourDbLongValue);
于 2013-04-16T08:47:09.283 回答
1

试试下面的代码。

String dateValue = "2013-05-11 13:59:50";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd hh:mm:ss");

Date date = null;
try {
    date = sdf.parse(dateValue);
} catch (ParseException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

SimpleDateFormat timeFormatter = new SimpleDateFormat("hh:mm");
String sa = timeFormatter.format(date);
于 2013-04-16T09:12:33.803 回答
0

如果 MySQL 的结果是可控的,你可以这样做select DATE(my_date_time) FROM my_table;只会给你日期。如果不是,那么我猜如果您将日期视为一个字符串,您可以对其进行子串(拆分)并获取前 10 个字符。

于 2013-04-16T08:49:10.880 回答
0

使用子字符串方法

startdate=start_time.substring(0, 10); 
starttime=start_time.substring(11, 16);
于 2013-04-16T08:50:02.590 回答
0
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String fullDate = format.format(mDate.getTime());
date = fullDate.substring(0, fullDate.indexOf(" ");
time = fullDate.substring(fullDate.indexOf(" " + 1);
于 2013-04-16T08:50:43.420 回答
0

将时间拆分为小时、分钟和秒。

String timeSpent="12:30:10";
String[] seperatedTime= timeSpent.split(":");
int hours = Integer.parseInt(seperatedTime[0]);
int minutes = Integer.parseInt(seperatedTime[1]);
int seconds = Integer.parseInt(seperatedTime[2]);
int duration = 3600 * hours + 60 * minutes + seconds;
于 2019-04-30T04:39:12.923 回答
0

RoadBean roadBean = new RoadBean();

StringTokenizer tk = new StringTokenizer(jsonObject.getString("datetime"));

字符串 split_date = tk.nextToken();

字符串 split_time = tk.nextToken();

roadBean.setDate(split_date);

roadBean.setTime(split_time);

mRoadBeanList.add(roadBean);

于 2017-09-07T12:51:46.327 回答