如何在Android中获取当前日期?

Cha*_*har 147 android date simpledateformat android-date

我写了以下代码

Date d = new Date();
CharSequence s  = DateFormat.format("MMMM d, yyyy ", d.getTime());
Run Code Online (Sandbox Code Playgroud)

但是问我参数,我想要字符串格式的当前日期,

喜欢

28-Dec-2011
Run Code Online (Sandbox Code Playgroud)

这样我就可以设置了TextView,

解释一下,如果你认为有必要,我是Android开发的新手.

Par*_*ani 361

您可以使用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); 
Run Code Online (Sandbox Code Playgroud)

更新:

具体的例子就是在这里这里,我建议你去通过这个例子,理解的SimpleDateFormat类的概念.

最终解决方案

Date c = Calendar.getInstance().getTime();
System.out.println("Current time => " + c);

SimpleDateFormat df = new SimpleDateFormat("dd-MMM-yyyy");
String formattedDate = df.format(c);
Run Code Online (Sandbox Code Playgroud)

  • 这需要 API 24! (2认同)

Pra*_*ani 141

它以简单的一行代码获取当前日期的yyyy-MM-dd格式,您可以使用您想要的格式:

String date = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()).format(new Date());
Run Code Online (Sandbox Code Playgroud)

  • 您应该将其更改为:String currentDate = new SimpleDateFormat("dd-MM-yyyy",Locale.getDefault()).format(new Date()); (7认同)

Gra*_*ith 28

这与android无关,因为它是基于java的,所以你可以使用

private String getDateTime() { 
   DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
   Date date = new Date(); 
   return dateFormat.format(date); 
}
Run Code Online (Sandbox Code Playgroud)


Kam*_*mal 12

 public String giveDate() {
    Calendar cal = Calendar.getInstance();
    SimpleDateFormat sdf = new SimpleDateFormat("EEE, MMM d, yyyy");
    return sdf.format(cal.getTime());
 }
Run Code Online (Sandbox Code Playgroud)


Luc*_*fer 8

试试这个,

SimpleDateFormat timeStampFormat = new SimpleDateFormat("yyyyMMddHHmmssSS");
Date myDate = new Date();
String filename = timeStampFormat.format(myDate);
Run Code Online (Sandbox Code Playgroud)


Mar*_*hof 7

CharSequence s  = DateFormat.getDateInstance().format("MMMM d, yyyy ");
Run Code Online (Sandbox Code Playgroud)

您首先需要一个实例


The*_*ble 6

像魅力一样工作并转换为String作为奖励;)

SimpleDateFormat currentDate = new SimpleDateFormat("dd/MM/yyyy");
      Date todayDate = new Date();
    String thisDate = currentDate.format(todayDate);
Run Code Online (Sandbox Code Playgroud)


ars*_*ikh 5

 String date = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
Run Code Online (Sandbox Code Playgroud)

//将Date类作为java.util导入


cNg*_*mba 5

对 Paresh 解决方案的简单调整:

Date date = Calendar.getInstance().getTime();
SimpleDateFormat df = new SimpleDateFormat("dd-MMM-yyyy");
String formattedDate = df.format(date);
Run Code Online (Sandbox Code Playgroud)


Far*_*Ali 5

SimpleDateFormat df = new SimpleDateFormat("dd-MMM-yyyy");
String date = df.format(Calendar.getInstance().getTime());
Run Code Online (Sandbox Code Playgroud)


ind*_*oti 5

 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();
Run Code Online (Sandbox Code Playgroud)


Ole*_*.V. 5

我正在提供现代答案。

\n\n

java.time 和 ThreeTenABP

\n\n

要获取当前日期:

\n\n
    LocalDate today = LocalDate.now(ZoneId.of("America/Hermosillo"));\n
Run Code Online (Sandbox Code Playgroud)\n\n

这为您提供了一个LocalDate对象,您应该使用它来在程序中保存日期。ALocalDate是不带时间的日期。

\n\n

仅当需要向用户显示日期时,才将其格式化为适合 user\xe2\x80\x99s 语言环境的字符串:

\n\n
    DateTimeFormatter userFormatter\n            = DateTimeFormatter.ofLocalizedDate(FormatStyle.LONG);\n    System.out.println(today.format(userFormatter));\n
Run Code Online (Sandbox Code Playgroud)\n\n

当我今天在美国英语语言环境中运行此代码片段时,输出为:

\n\n
\n

2019 年 7 月 13 日

\n
\n\n

如果您希望它更短,请指定FormatStyle.MEDIUM或什至FormatStyle.SHORTDateTimeFormatter.ofLocalizedDate使用默认的格式化区域设置,因此重点是它将提供适合该区域设置的输出,并且对于不同的区域设置会有所不同。

\n\n

如果您的用户对输出格式有非常特殊的要求,请使用格式模式字符串:

\n\n
    DateTimeFormatter userFormatter = DateTimeFormatter.ofPattern(\n            "d-MMM-u", Locale.forLanguageTag("ar-AE"));\n
Run Code Online (Sandbox Code Playgroud)\n\n
\n

13-\xd9\x8a\xd9\x88\xd9\x84-2019

\n
\n\n

我正在使用并推荐 java.time,这是现代 Java 日期和时间 API。DateFormatSimpleDateFormatDate以及Calendar在问题和/或许多其他答案中使用的设计不佳且早已过时。而且 java.time 更适合使用。

\n\n

问:我可以在 Android 上使用 java.time 吗?

\n\n

是的,java.time 在旧版和新版 Android 设备上都能很好地工作。它只需要至少Java 6

\n\n
    \n
  • 在 Java 8 及更高版本以及较新的 Android 设备(从 API 级别 26 开始)中,现代 API 是内置的。
  • \n
  • 在 Java 6 和 7 中,获得 ThreeTen Backport,即现代类的向后移植(ThreeTen for JSR 310;请参阅底部的链接)。
  • \n
  • 在(较旧的)Android 上使用 ThreeTen Backport 的 Android 版本。它\xe2\x80\x99s 称为ThreeTenABP。并确保从org.threeten.bp子包中导入日期和时间类。
  • \n
\n\n

链接

\n\n\n


小智 5

此方法可用于从系统获取当前日期。

public static String getCurrentDateAndTime(){
    Date c = Calendar.getInstance().getTime();
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd");
    String formattedDate = simpleDateFormat.format(c);
    return formattedDate;
}
Run Code Online (Sandbox Code Playgroud)