5

我正在尝试在 android 中显示日期,使用 DatePicker 选择年、月和日。我遇到的问题是选择年份、月份和日期,并以适合手机区域设置的正确格式在屏幕上显示它们,而不显示时间。

现在的代码将正确显示日期,但也会显示时间。

StringBuilder string = new StringBuilder()
    // Month is 0 based so add 1
    .append(mYear).append("-")
    .append(mMonth + 1).append("-")
    .append(mDay);

    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");

    try {   
        Date date = format.parse(string.toString());
        mDateDisplay.setText(date.toLocaleString());
    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } 

mDateDisplay 是一个文本视图。

我不知道如何摆脱也显示的时间。我已经进行了大量的搜索和阅读文档,但我无法弄清楚。任何帮助,将不胜感激。

4

5 回答 5

8
java.text.DateFormat dateFormat = android.text.format.DateFormat.getDateFormat(getContext());
mDateDisplay.setText(dateFormat.format(date))

这将考虑用户的区域设置并仅显示日期。

以下是相关文档:getDateFormat(Context context)

于 2012-05-08T16:23:45.987 回答
2
android.text.format.DateFormat df = new android.text.format.DateFormat();
df.format("yyyy-MM-dd", new java.util.Date());

或者

android.text.format.DateFormat.format("yyyy-MM-dd", new java.util.Date());

参考这个链接

更新了::

您还可以使用格式化程序仅获取日期,如下所示:

mDateDisplay.setText(String.format("%1$tY %1$tb %1$td", date));
于 2012-05-08T16:13:53.977 回答
2

试试这个代码

long date = System.currentTimeMillis();
        SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
        SimpleDateFormat timeonly = new SimpleDateFormat("hh:mm");
        String dateString = sdf.format(date);
        String timeString = timeonly.format(date);
        //show present date
        textView.setText(dateString);

        //show present time
        TextView.setText(timeString);
于 2017-12-09T14:26:53.597 回答
0

我花了一个小时,终于找到了解决方案。

 String datemillis = cursor.getString(cursor.getColumnIndex("field name on table"));
            SimpleDateFormat  df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");



            try {
                Date date = null;
                date = df.parse(datemillis);
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                String shortTimeStr = sdf.format(date);
                System.out.println(shortTimeStr);
                Y=shortTimeStr;
            } catch (ParseException e) {
                // To change body of catch statement use File | Settings | File Templates.
                e.printStackTrace();
            }
                Toast.makeText(getApplicationContext(),Y, Toast.LENGTH_LONG).show();
于 2015-01-22T10:02:44.920 回答
0

这对我有用:

public class MainActivity extends AppCompatActivity {
TextView txt, txt1;

Button click;
Calendar c = Calendar.getInstance();


SimpleDateFormat df = new SimpleDateFormat("dd-MMM-yyyy");
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    txt1 = (TextView) findViewById(R.id.txt1);

    click = (Button) findViewById(R.id.click);
    c.setTimeZone(TimeZone.getTimeZone("GMT"));

    click.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            String f=df.format(c.getTime());

            txt1.setText(f);
        }
    });       
}

}
于 2016-10-11T07:24:56.470 回答