我试图在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是一个TextView。
我无法弄清楚如何摆脱同时显示的时间。我做了大量的搜索和阅读文档,我无法理解。任何帮助将不胜感激。
答案 0 :(得分:7)
java.text.DateFormat dateFormat = android.text.format.DateFormat.getDateFormat(getContext());
mDateDisplay.setText(dateFormat.format(date))
这将考虑用户区域设置并仅显示日期。
以下是相关文档:getDateFormat(Context context)
答案 1 :(得分: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());
参考此LINK
<强>更新强> ::
您还可以使用formatter获取以下日期::
mDateDisplay.setText(String.format("%1$tY %1$tb %1$td", date));
答案 2 :(得分:1)
试试这段代码
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);
答案 3 :(得分: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();
答案 4 :(得分: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);
}
});
}
}