我写了下面的代码
Date d = new Date();
CharSequence s = DateFormat.format("MMMM d, yyyy ", d.getTime());
但是问我参数,我想要字符串格式的当前日期,
喜欢
28-Dec-2011
这样我就可以设置了TextView
,
解释一下,如果您认为有必要,我是Android开发的新手。
我写了下面的代码
Date d = new Date();
CharSequence s = DateFormat.format("MMMM d, yyyy ", d.getTime());
但是问我参数,我想要字符串格式的当前日期,
喜欢
28-Dec-2011
这样我就可以设置了TextView
,
解释一下,如果您认为有必要,我是Android开发的新手。
Answers:
您可以使用SimpleDateFormat
该类以所需的格式来格式化日期。
只需检查此链接,您将在其中找到您的示例想法。
例如:
String dateStr = "04/05/2010";
SimpleDateFormat curFormater = new SimpleDateFormat("dd/MM/yyyy");
Date dateObj = curFormater.parse(dateStr);
SimpleDateFormat postFormater = new SimpleDateFormat("MMMM dd, yyyy");
String newDateStr = postFormater.format(dateObj);
详细的示例在这里,建议您仔细阅读本示例,并了解SimpleDateFormat类的概念。
Date c = Calendar.getInstance().getTime();
System.out.println("Current time => " + c);
SimpleDateFormat df = new SimpleDateFormat("dd-MMM-yyyy", Locale.getDefault());
String formattedDate = df.format(c);
java.util.Date
,java.util.Calendar
和java.text.SimpleDateFormat
现在的遗产,由取代java.time内置到Java 8和更高等级。请参见Oracle 教程。
它的简单一行代码以yyyy-MM-dd格式获取当前日期,您可以使用所需的格式:
String date = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()).format(new Date());
这与android无关,因为它基于Java,因此您可以使用
private String getDateTime() {
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = new Date();
return dateFormat.format(date);
}
试试这个,
SimpleDateFormat timeStampFormat = new SimpleDateFormat("yyyyMMddHHmmssSS");
Date myDate = new Date();
String filename = timeStampFormat.format(myDate);
CharSequence s = DateFormat.getDateInstance().format("MMMM d, yyyy ");
您首先需要一个实例
像吊饰一样工作,并转换为String作为奖励;)
SimpleDateFormat currentDate = new SimpleDateFormat("dd/MM/yyyy");
Date todayDate = new Date();
String thisDate = currentDate.format(todayDate);
String date = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
//将Date类导入为java.util
下面的代码同时显示时间和日期
Calendar cal = Calendar.getInstance();
cal.getTime().toString();
SimpleDateFormat df = new SimpleDateFormat("dd-MMM-yyyy");
String date = df.format(Calendar.getInstance().getTime());
我正在提供现代答案。
要获取当前日期:
LocalDate today = LocalDate.now(ZoneId.of("America/Hermosillo"));
这为您提供了一个LocalDate
对象,您应该使用该对象在程序中保留日期。A LocalDate
是没有时间的日期。
仅当您需要向用户显示日期时,才将其格式化为适合用户所在地区的字符串:
DateTimeFormatter userFormatter
= DateTimeFormatter.ofLocalizedDate(FormatStyle.LONG);
System.out.println(today.format(userFormatter));
今天在美国英语语言环境中运行此代码段时,输出为:
七月13,2019
如果要缩短,请指定FormatStyle.MEDIUM
甚至FormatStyle.SHORT
。DateTimeFormatter.ofLocalizedDate
使用默认格式的语言环境,所以重点是它将提供适合该语言环境的输出,而对于不同的语言环境则有所不同。
如果您的用户对输出格式有非常特殊的要求,请使用格式模式字符串:
DateTimeFormatter userFormatter = DateTimeFormatter.ofPattern(
"d-MMM-u", Locale.forLanguageTag("ar-AE"));
13-يول-2019
我正在使用并推荐java.time(现代Java日期和时间API)。DateFormat
,和SimpleDateFormat
,Date
以及Calendar
在问题和/或许多其他答案中使用的,设计不当,且已过时。而且java.time更好用。
是的,java.time在旧的和更新的Android设备上都能很好地工作。它至少需要Java 6。
org.threeten.bp
带有子包的日期和时间类。java.time
首先在此处进行了描述。java.time
Java 6和7的反向移植(JSR-310的ThreeTen)。DateTimeUtils.toDate(yourLocalDateTime.atZone(ZoneId.systemDefault()).toInstant())
。如果使用内置java.time: Date.from(yourLocalDateTime.atZone(ZoneId.systemDefault()).toInstant())
。请参见在java.time.LocalDateTime和java.util.Date之间进行转换。乔达·斯蒂芬(JodaStephen)的权威性答案就在这里,还有一个答案显示了反向端口的使用。
public static String getcurrentDateAndTime(){
Date c = Calendar.getInstance().getTime();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd");
String formattedDate = simpleDateFormat.format(c);
return formattedDate;
}
// String currentdate= getcurrentDateAndTime();
28-Dec-2011
)?无论如何,它仍然使用着名的麻烦和长期过时的SimpleDateFormat
类。拜托了,我们不需要其他答案了。
在当前语言环境(设备语言环境!)中获取当前日期的最简单方法:
String currentDate = DateFormat.getDateInstance().format(Calendar.getInstance().getTime());
如果您希望日期使用不同的样式,请使用getDateInstance(int style)
:
DateFormat.getDateInstance(DateFormat.FULL).format(Calendar.getInstance().getTime());
其它样式:DateFormat.LONG
,DateFormat.DATE_FIELD
,DateFormat.DAY_OF_YEAR_FIELD
等(使用CTRL+Space看到所有的人)
如果您也需要时间:
String currentDateTime = DateFormat.getDateTimeInstance(DateFormat.DEFAULT,DateFormat.LONG).format(Calendar.getInstance().getTime());
public static String getDateTime() {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MMMM dd, yyyy HH:mm:ss", Locale.getDefault());
Date date = new Date();
return simpleDateFormat.format(date);
}
这是我使用的代码:
Date date = new Date(); // to get the date
SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy"); // getting date in this format
String formattedDate = df.format(date.getTime());
text.setText(formattedDate);
我已经用过了:
Date What_Is_Today=Calendar.getInstance().getTime();
SimpleDateFormat Dateformat = new SimpleDateFormat("dd-MM-yyyy");
String Today=Dateformatf.format(What_Is_Today);
Toast.makeText(this,Today,Toast.LENGTH_LONG).show();
起初我有时间,然后我声明了一种简单的日期格式(以获取日期,例如:19-6-2018),然后使用format将日期更改为字符串。
只需一行代码即可获得简单的Date格式:
SimpleDateFormat.getDateInstance().format(Date())
产出:2020年5月18日
SimpleDateFormat.getDateTimeInstance().format(Date())
输出:2020年5月18日11:00:39 AM
SimpleDateFormat.getTimeInstance().format(Date())
输出:11 : 00 : 39 AM
希望此答案足以获取此日期和时间格式... :)
SimpleDateFormat
和DateFormat
类。至少不是第一选择。也并非毫无保留。今天,我们在java.time
Java的现代日期和时间API及其上有了很多改进DateTimeFormatter
。是的,您可以在Android上使用它。对于较旧的Android,请参见如何在Android Project中使用ThreeTenABP。
这是我使用的代码:
final Calendar c = Calendar.getInstance();
year = c.get(Calendar.YEAR);
month = c.get(Calendar.MONTH);
day = c.get(Calendar.DAY_OF_MONTH);
// Set current date into textview
tvDisplayDate.setText(new StringBuilder()
.append(month + 1).append("-") // Month is 0 based, add 1
.append(day).append("-")
.append(year).append(" Today is :" + thursday ) );
// Set current date into datepicker
dpResult.init(year, month, day, null);
DateFormat
在2011年提出此问题时,使用该类还可以,但该类及其子类SimpleDateFormat
总是很麻烦,现在已经过时了。我建议您不要使用它们,而应使用java.time(现代的Java日期和时间API)。