Formatting a calendar date

前端 未结 5 499
不思量自难忘°
不思量自难忘° 2021-02-02 07:06

I just want the date to show up like so:

Saturday, May 26, 2012 at 10:42 PM

Here\'s my code so far:

Calendar calendar = Calendar.get         


        
相关标签:
5条回答
  • 2021-02-02 07:12

    This is actually a fairly subtle problem to get right, and I've not seen another answer here on SO that addresses both:

    • The Calendar's time zone (which means that it might be showing a different date than local)
    • The device's Locale (which affects the "right" way to format dates)

    The previous answers to this question ignore locale, and other answers that involve conversion to a Date ignore the time zone. So here's a more complete, general solution:

    Calendar cal = Calendar.getInstance(); // the value to be formatted
    java.text.DateFormat formatter = java.text.DateFormat.getDateInstance(
            java.text.DateFormat.LONG); // one of SHORT, MEDIUM, LONG, FULL, or DEFAULT
    formatter.setTimeZone(cal.getTimeZone());
    String formatted = formatter.format(cal.getTime());
    

    Note that you need to use java.text.DateFormat here, not Android's own (confusingly-named) android.text.format.DateFormat.

    0 讨论(0)
  • 2021-02-02 07:13

    Even simpler answer:

    SimpleDateFormat.getDateTimeInstance().format(cal.getTime())
    
    0 讨论(0)
  • 2021-02-02 07:21
    Calendar calendar = Calendar.getInstance();
    SimpleDateFormat format = new SimpleDateFormat("EEEE, MMMM d, yyyy 'at' h:mm a");
    System.out.println(format.format(calendar.getTime()));
    

    Running the above code outputs the current time (e.g., Saturday, May 26, 2012 at 11:03 PM).

    See the Android documentation for SimpleDateFormat for more information.

    The format specification of SimpleDateFormat is similar to that of PHP's date function:

    echo date("l, M j, Y \a\\t g:i A");
    

    You're right. Compared to the Java code, the PHP code is much more succinct.

    0 讨论(0)
  • 2021-02-02 07:33

    For me this works perfectly:

    val cal = Calendar.getInstance()
    
    val pattern = "EEEE, MMMM d, yyyy 'at' h:mm a"
    val primaryLocale = getLocales(resources.configuration).get(0)
    val dateFormat = SimpleDateFormat(dateFormatPattern, primaryLocale)
    
    val formatedDate: String = dateFormat.format(cal.time)
    
    
    0 讨论(0)
  • 2021-02-02 07:34

    Use the below to format the date as required. Refer this LINK

     Calendar calendar = Calendar.getInstance();
     lastclick.setText(getString(R.string.lastclick) + " " + String.format("%1$tA %1$tb %1$td %1$tY at %1$tI:%1$tM %1$Tp", calendar));
    

    Where %1$tA for staurday, %1$tb for May,

    and so on...

    0 讨论(0)
提交回复
热议问题