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

时间:2011-12-28 10:58:31

标签: android date simpledateformat android-date

我写了以下代码

Date d = new Date();
CharSequence s  = DateFormat.format("MMMM d, yyyy ", d.getTime());

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

喜欢

28-Dec-2011

这样我就可以设置TextView

解释一下,如果你觉得有必要,我是Android开发的新手。

27 个答案:

答案 0 :(得分:333)

您可以使用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); 

更新

详细示例为herehere,我建议您通过此示例了解SimpleDateFormat类的概念。

最终解决方案:

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

SimpleDateFormat df = new SimpleDateFormat("dd-MMM-yyyy");
String formattedDate = df.format(c);

答案 1 :(得分:128)

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

String date = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()).format(new Date());

答案 2 :(得分:26)

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

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

答案 3 :(得分:12)

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

答案 4 :(得分:8)

试试这个,

SimpleDateFormat timeStampFormat = new SimpleDateFormat("yyyyMMddHHmmssSS");
Date myDate = new Date();
String filename = timeStampFormat.format(myDate);

答案 5 :(得分:6)

CharSequence s  = DateFormat.getDateInstance().format("MMMM d, yyyy ");

您首先需要一个实例

答案 6 :(得分:6)

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

SimpleDateFormat currentDate = new SimpleDateFormat("dd/MM/yyyy");
      Date todayDate = new Date();
    String thisDate = currentDate.format(todayDate);

答案 7 :(得分:5)

<?php
     $days = 30,$deleted = 0;
     function delete_old_files($dir) {
       global $days,$deleted;
       if(!is_dir($dir)){
         return;
       }
       $files = preg_grep('/^([^.])/', scandir($dir));
       foreach($files as $file) {
         $path = $dir.'/'.$file;
         if(is_dir($path)){
            //the current file is a directory, re-scan it
            delete_old_files($path);
            continue;
         }
         if(time() - filemtime($path) > $days * 86400){
           unlink($file) ? ++$deleted : null;
         }
       }
       return $deleted;
     }
     //now call this function
     delete_old_files("/images/uploads");

//将日期类导入为 java.util

答案 8 :(得分:4)

以下代码显示时间和日期

Calendar cal = Calendar.getInstance();
cal.getTime().toString();

答案 9 :(得分:4)

Calendar cal = Calendar.getInstance();      
Calendar dt = Calendar.getInstance(); 
dt.clear();
dt.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),cal.get(Calendar.DATE)); 
return dt.getTime();        

答案 10 :(得分:4)

SimpleDateFormat df = new SimpleDateFormat("dd-MMM-yyyy");
String date = df.format(Calendar.getInstance().getTime());

答案 11 :(得分:3)

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

@Effect()
didSomething$: Observable<Action> = this.actions
  .ofType('doSomething')
  .flatMap(task => Observable.merge(
    Observable.of({ type: 'perform1', payload: task.payload }),
    Observable.of({ type: 'perform2', payload: task.payload }).delay(2000)
  ));

答案 12 :(得分:1)

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

SimpleDateFormat df = new SimpleDateFormat("dd-MMM-yyyy");
String formattedDate = df.format(c);

这是最好的答案...

答案 13 :(得分:1)

我正在提供现代的答案。

java.time和ThreeTenABP

要获取当前日期:

    LocalDate today = LocalDate.now(ZoneId.of("America/Hermosillo"));

这为您提供了一个LocalDate对象,您应该使用该对象在程序中保留日期。 LocalDate是没有时间的日期。

仅在需要向用户显示日期时,将其格式化为适合用户所在地区的字符串:

    DateTimeFormatter userFormatter
            = DateTimeFormatter.ofLocalizedDate(FormatStyle.LONG);
    System.out.println(today.format(userFormatter));

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

  

2019年7月13日

如果您想缩短它,请指定FormatStyle.MEDIUM甚至是FormatStyle.SHORTDateTimeFormatter.ofLocalizedDate使用默认的格式区域设置,因此,要点是它将提供适合该区域设置的输出,而不同的区域设置会有所不同。

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

    DateTimeFormatter userFormatter = DateTimeFormatter.ofPattern(
            "d-MMM-u", Locale.forLanguageTag("ar-AE"));
  

13-يول-2019

我正在使用并推荐使用Java.time(现代Java日期和时间API)。问题和/或许多其他答案中使用的DateFormatSimpleDateFormatDateCalendar设计得很差,而且已经过时了。而且java.time更好用。

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

是的,java.time在较新和较旧的Android设备上均可正常运行。它只需要至少 Java 6

  • 在Java 8和更高版本以及更新的Android设备(API级别26以上)中,内置了现代API。
  • 在Java 6和7中,获得了ThreeTen反向端口,这是现代类的反向端口(JSR 310的ThreeTen;请参见底部的链接)。
  • 在(较旧的)Android上,使用Android版本的ThreeTen Backport。叫做ThreeTenABP。并确保您使用子包从org.threeten.bp导入日期和时间类。

链接

答案 14 :(得分:1)

只需一行代码即可获得简单的日期格式:

SimpleDateFormat.getDateInstance().format(Date())

输出: 2020年5月18日

SimpleDateFormat.getDateTimeInstance().format(Date())

输出: 2020年5月18日上午11:00:39

SimpleDateFormat.getTimeInstance().format(Date())

输出: 11:00:39 AM

希望此答案足以获取此日期和时间格式...:)

答案 15 :(得分:0)

公共静态字符串getcurrentDateAndTime(){

    Date c = Calendar.getInstance().getTime();
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd");
    String formattedDate = simpleDateFormat.format(c);

    return formattedDate;
}

//字符串currentdate = getcurrentDateAndTime();

答案 16 :(得分:0)

在科特林

https://www.programiz.com/kotlin-programming/examples/current-date-time

fun main(args: Array<String>) {

val current = LocalDateTime.now()

val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS")
val formatted = current.format(formatter)

println("Current Date and Time is: $formatted")}

答案 17 :(得分:0)

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

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

答案 18 :(得分:0)

Calendar c = Calendar.getInstance();
int day = c.get(Calendar.DAY_OF_MONTH);
int month = c.get(Calendar.MONTH);
int year = c.get(Calendar.YEAR);
String date = day + "/" + (month + 1) + "/" + year;

Log.i("TAG", "--->" + date);

答案 19 :(得分:0)

如果你只是想得到日期,只需输入这样的代码

Calendar.getInstance().getTime();

答案 20 :(得分:0)

我已经用过了

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) 然后我使用格式将日期更改为字符串。

答案 21 :(得分:0)

这是我使用的代码:

             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);

答案 22 :(得分:0)

我使用CalendarView编写日历应用程序,这是我的代码:

import android.widget.CalendarView;
import java.util.Date;

'calendar'字段是我的CalendarView。 进口:

{{1}}

我的当前日期没有错误。

答案 23 :(得分:0)

尝试使用此代码链接,这是所有日期和时间的绝对正确答案。或根据应用的需要和要求自定义日期和时间。

尝试使用此链接。try with this link

答案 24 :(得分:0)

  public static String getDateTime() {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MMMM dd, yyyy HH:mm:ss", Locale.getDefault());
        Date date = new Date();
        return simpleDateFormat.format(date);
    }

答案 25 :(得分:0)

以当前语言环境获取当前日期的最简单方法(设备区域设置!):

String currentDate = DateFormat.getDateInstance().format(Calendar.getInstance().getTime());

如果您希望以不同的样式使用日期,请使用getDateInstance(int style)

DateFormat.getDateInstance(DateFormat.FULL).format(Calendar.getInstance().getTime());

其他样式:DateFormat.LONGDateFormat.DATE_FIELDDateFormat.DAY_OF_YEAR_FIELD等(使用 CTRL + Space 查看所有样式)

如果你也需要时间:

String currentDateTime = DateFormat.getDateTimeInstance(DateFormat.DEFAULT,DateFormat.LONG).format(Calendar.getInstance().getTime());

答案 26 :(得分:-1)

这是代码used

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);