来自时间戳的java日期和时间

时间:2014-04-09 10:23:08

标签: java android date timestamp achartengine

我正在使用achartengine开发android应用程序,我正在制作一个TimeSeries线图。我已将所有变量存储在Arraylist中。因为我需要正确的日期对象插入我正在使用的图表的时间轴,

int count = list.size();
Date[] dt = new Date[count];
for(int i=0;i<count;i++){
    long a = Long.parseLong(list.get(i).get("time"));
    dt[i] = new Date(a);
}

此处long a包含时间戳。用上面的代码。我可以将dt作为09-Apr-2014,但我需要将日期显示为09-Apr 12:55。我怎么能这样做,

我尝试使用以下

SimpleDateFormat sdfDate = new SimpleDateFormat("MM-dd HH:mm"); Date now = new Date(); String strDate = sdfDate.format(now);

但是由于strDate是一个字符串,我不能将其用作dt[i] = strDate,因为一个是Date而另一个是String会引发错误。

我该如何解决这个问题?

由于

4 个答案:

答案 0 :(得分:3)

你可以这样解决:

dt[i] = sdfDate.parse(strDate);

答案 1 :(得分:3)

如果你真的需要日期字符串,你可以这样做:

int count = list.size();
String[] dt = new String[count];

for (int i = 0; i < count; i++) {
    long a = Long.parseLong(list.get(i).get("time"));
    Date d = new Date(a);
    SimpleDateFormat dateFormat = new SimpleDateFormat("MM-dd HH:mm");
    dt[i] = dateFormat.format(d);
}

或者,如果您确实需要Date数组,只需根据需要随时格式化日期。

答案 2 :(得分:3)

您的问题被误导了 - 您正在展示如何在代码中创建Date对象,但您想要解决的是如何显示它们。
Date数组的日期精确到毫秒。 toString()对象的默认Date方法仅显示当天,这就是您没有看到时间的原因。 UI决定打印时间的格式本身就是UI的责任,因此你应该将Date数组传递给UI(或者直到打印点)并在那里格式化它们。

答案 3 :(得分:3)

DateFormat可以同时执行(日期到字符串表示和返回):

DateFormat formatter = new SimpleDateFormat( "dd-MM-yyyy HH:mm:ss" );

日期到字符串:

Date date = new Date();
String sDate = formatter.format( time );

日期字符串:

Date date = formatter.parse(sDate );

存储日期时,应尽可能精确地存储日期(毫秒)。要将其显示为字符串,您可以使用任何您想要的格式。