在Android中获取格式化的日期和时间

4
我有两个函数用于计算日期和时间。
  public static String getFormattedDate(String time) {
    long timeUnix = Long.parseLong(time);
    Date myDate = new Date(timeUnix * 1000);
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MMM d yy");
    return simpleDateFormat.format(myDate);
}

  public static String getFormattedTime(String time) {
    long timeUnix = Long.parseLong(time);
    Date myDate = new Date(timeUnix * 1000);
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("hh:mm:ss");
    return simpleDateFormat.format(myDate);
}

我从它们那里得到了我需要的正确输出。
Jul 12 11(date function) and 12:09:45(time function)

如何计算天数并设置上午/下午。

如果是今天的日期,我正在尝试设置上午/下午时间,如果比今天更早,则显示当天(星期一、星期二、星期三等),如果超过一周,则显示“MMM d yy”。


“计算天数”是什么意思?肯定是指PM,即当小时数大于等于12时。 - trojanfoe
太有趣了!计算天数是什么? - Sherif elKhatib
从计算天数的角度来说,我是指星期天、星期一、星期二等。抱歉我的英语表达不太好。 - Rishi
3个回答

11

对于上午/下午的标记:

SimpleDateFormat dateFormat = new SimpleDateFormat("KK:mm:ss a");
return dateFormat.format(myDate);

KK代表上午/下午的小时数(0-11),而HH代表一天中的小时数(0-23)


谢谢Fortega,真的帮了很多忙。 - Rishi
但我需要检查并相应地显示时间,如果是今天,则显示时间,如果在过去的7天之间,则显示日期,如果超过7天,则显示日期/月份/年份。如何完成这个任务? - Rishi
为此,您可以查看例如http://stackoverflow.com/questions/5692618/number-of-days-since-registration。如果这不能回答您的问题,您可以为此创建一个新的stackoverflow问题... - Fortega

9
Calendar cal = Calendar.getInstance();
Date currentLocalTime = cal.getTime();

DateFormat date = new SimpleDateFormat("dd-MM-yyy HH:mm:ss z");

String localTime = date.format(currentLocalTime);

System.out.println(localTime);

单行代码:new SimpleDateFormat("dd-MM-yyy HH:mm:ss z", Locale.getDefault()).format(Calendar.getInstance().getTime()) - Hitesh Sahu

1

可以使用以下代码获取AM/PM:

SimpleDateFormat dateFormat = new SimpleDateFormat("a");
return dateFormat.format(myDate);

有几个不同的选项可供选择,最好参考SimpleDateFormat文档来决定您需要哪种日期格式。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接