关于java:String到日期转换android

String to date conversion android

我有一个Android应用程序,我想将我的字符串转换为日期数据类型。
我以这种格式("12/30/2011")通过日期选择器获取字符串。
我想以相同的格式将其转换为字符串。 这是我的代码:

1
2
3
4
5
        Date dateObj = new Date();
        dateFormat = new SimpleDateFormat("MM/dd/yyyy");
        dateFormat.setLenient(false);
        dateObj = dateFormat.parse("12/30/2011");
        Log.v("",""+dateObj);

但我以这种形式获得价值:

周三12月28日00:00:00 GMT + 05:00 2011


有帮助吗?

1
2
SimpleDateFormat sdf = new SimpleDateFormat(format);
sdf.format(new Date())

请看看这个

1
2
3
4
5
6
7
8
9
10
import java.text.SimpleDateFormat;
import java.util.Date;


public class DateIssue {
    public static void main(String[] args) {
        SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
        System.out.println(sdf.format(new Date()));
    }
}

输出:12/28/2011

代替

1
Log.v("",""+dateObj);

用这个

1
 Log.v("",""+sdf.format(new Date()));

您不应该打印原始日期对象,而是打印格式化日期对象。


1
2
3
4
5
Date dateObj = new Date();
dateFormat = new SimpleDateFormat("MM/dd/yyyy");
dateFormat.setLenient(false);
dateObj = dateFormat.parse("12/30/2011");
Log.v("","" + dateFormat.format(dateObj));

试试这个吧。 dateFormat.format()应该可以解决您的问题。


好像你做的一切都正确,只是日期对象总是存储这些值以保持所有日期对象的一致性。 看看这个。


你错误地解析和格式化。

这里:

1
2
3
4
    Date dateObj = new Date();
    dateFormat = new SimpleDateFormat("MM/dd/yyyy");
    String dateAsString = dateFormat.format(dateObj);
    Log.v("",dateAsString);

另请注意,将对象与String连接始终使用对象的toString方法。 对于Date对象,toString返回一个基本的默认格式,与您在上面声明的SimpleDateFormat无关。


1
2
3
4
5
date : String date
formatpattern : String formatPatten

SimpleDateFormat formatter = new SimpleDateFormat(formatpattern);
Date date = formatter.parse(date);