java - 解析具有不同日期格式的日期字符串

标签 java parsing date-format

我正在尝试解析日期字符串,我的问题是这些字符串可以有不同的日期格式,这取决于它们谈论的是今天、明天还是另一天。

  • 如果他们谈论今天的 Activity ,格式如下:20:45
  • 如果他们谈论明天的 Activity ,格式是:明天 20: 45
  • 如果他们谈论另一天,格式为:2016 年 5 月 10 日

所以我想知道我是否可以使用相同的 DateFormat 解析它们三个,如果不能,最好的方法是什么。

DateFormat format = new SimpleDateFormat("EEEE d ' de' MMMM ' de' yyyy", locale);

最佳答案

您不能使用相同的 SimpleDateFormat 来解析所有类型,这也不是一个好的做法,不可读且更复杂,不添加任何特殊值,我会尝试这样的事情:

private static final SimpleDateFormat formatHHMM = new SimpleDateFormat("hh:mm");
private static final SimpleDateFormat formatOther = new SimpleDateFormat("MMM dd yyyy");

private static String convertDate(Date curDate) {
    if (isToday(curDate)) {
        return formatHHMM.format(curDate);
    }
    else if (isTomorrow(curDate)) {
        return "Tomorrow " + formatHHMM.format(curDate);
    }
    return formatOther.format(curDate);
}

private static boolean isToday(Date curDate) {
    Date today = Calendar.getInstance().getTime();
    return today.equals(curDate);
}

private static boolean isTomorrow(Date curDate) {
    Calendar calendar = Calendar.getInstance();
    calendar.add(Calendar.DATE, 1);
    Date tomorrow = calendar.getTime();
    return tomorrow.equals(curDate);
}
//Check the code with this
public static void main( String[] args )
{
    Date curDate = new Date();
    System.out.println( convertDate(curDate));

    Calendar calendar = Calendar.getInstance();
    calendar.add(Calendar.DATE, 1);
    Date tomorrow = calendar.getTime();
    System.out.println( convertDate(tomorrow));

    calendar = Calendar.getInstance();
    calendar.add(Calendar.DATE, 15);
    Date other = calendar.getTime();
    System.out.println( convertDate(other));
}

关于java - 解析具有不同日期格式的日期字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36009411/

相关文章:

java - Android MediaRecorder JNI(Delphi)的问题

java - Android 谷歌分析 v3

scala - 当编译器找到Serializable而不是match类型时,如何解决类型不匹配的问题?

在 Clojure 中解析具有混合类型的文件行

sql - Oracle SQL 将日期格式从 DD-Mon-YY 转换为 YYYYMM

eclipse - JDK/JRE/JVM/Java SDK |它们都是什么意思?有时你可以用 JRE 开发,有时你需要 JDK?

java - Apache Kafka 客户端(Java): List topics and check whether topic is log compacted

c# - 使用 C# 且不使用 ASP.NET 的 JSON

ruby - 确定 Ruby 中的星期日

php - 使用 php 将 'input type text' 作为日期插入 mysql 数据库