【问题标题】:How to get day from specified date in android如何从android中的指定日期获取日期
【发布时间】:2012-12-16 15:12:47
【问题描述】:

假设我的日期是 02-01-2013

它存储在一个变量中,例如:

String strDate = "02-01-2013";

那么我应该如何获得这个日期的日期(即星期二)?

【问题讨论】:

  • 我仍然没有做任何我在网上搜索但没有得到正确答案的事情
  • 我从远程服务器获取多个日期并将其存储到字符串数组中,现在每个日期我想找到他的日期,所以我应该如何在 android 中执行此操作

标签: android date dayofweek weekday


【解决方案1】:

使用来自 java api 的 Calendar 类。

Calendar calendar = new GregorianCalendar(2008, 01, 01); // Note that Month value is 0-based. e.g., 0 for January.
int reslut = calendar.get(Calendar.DAY_OF_WEEK);
switch (result) {
case Calendar.MONDAY:
    System.out.println("It's Monday !");
    break;
}

您还可以使用SimpleDateFormaterDate 来解析日期

Date date = new Date();
SimpleDateFormat date_format = new SimpleDateFormat("yyyy-MM-dd");
try {
    date = date_format.parse("2008-01-01");
} catch (ParseException e) {
    e.printStackTrace();
}

calendar.setTime(date);

【讨论】:

  • 日历日历 = Calendar.getInstance(); int val = calendar.get("05-01-2013");假设我使用它,那么他可以给我输出(星期六)?????
  • 我应该在哪里传递我指定的日期
  • 不,您可以通过 calendar.setTime(Date date) 设置日历的日期,也可以在创建日历类的实例时指定日期。
【解决方案2】:

先拆分字符串

String[] out = strDate.split("-");
                    s1 = Integer.parseInt(out[0]);
                    s2 = Integer.parseInt(out[1]) - 1;
                    yr = out[2];
char a, b, c, d;
                    a = yr.charAt(0);
                    b = yr.charAt(1);
                    c = yr.charAt(2);
                    d = yr.charAt(3);
                    s3 = Character.getNumericValue(a)*1000 +
                         Character.getNumericValue(b)*100 +
                         Character.getNumericValue(c)*10 +
                         Character.getNumericValue(d);

然后在那天创建一个日历实例

Calendar cal        = Calendar.getInstance();
cal.set(s3, s2, s1);

然后得到一天

cal.get(Calendar.DAY_OF_WEEK);

【讨论】:

  • 这将提供所需的输出,但我们为什么不使用 dateFormat.parse() 让它更简单呢?
  • Chinmoy Debnath 为什么你使用 s2 = Integer.parseInt(out[1]) - 1; -1 在这里
  • 在日历类中,0 表示一月,11 表示十二月。所以我从月份减一以反映正确的月份。
  • -1 拯救了我的一天
【解决方案3】:

将此格式用于日期、日期和时间。

日期 dNow = new Date(); SimpleDateFormat ft = new SimpleDateFormat("E yyyy.MM.dd 'at' hh:mm:ss a zzz");

并使用格式方法将对象放在这里。 ft.format(dNow)

【讨论】:

    【解决方案4】:

    我认为基于Android文档建议使用日历,

    您需要小心,因为第一天是Sunday,第一个月是January 还要检查您是否可以获得 DAY_OF_WEEK、DAY_OF_MONTH 等

    【讨论】:

      猜你喜欢
      • 2017-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多