【问题标题】:Android date issue安卓日期问题
【发布时间】:2011-11-10 11:15:55
【问题描述】:

这件事让我很头疼,我想要的只是从这个日期字符串中获取日期

2011-10-31 11:00:00

我不想使用 Date,因为它已被弃用,但我不知道如何通过 Calendar 类或任何有效的方式来做到这一点

【问题讨论】:

  • 看看This Answer
  • 但它仍在使用日期,如果我解析日期,它说不推荐使用
  • 你有这个日期(即2011-10-31 11:00:00)作为字符串吗?
  • 我不认为 Date 已被弃用,只是其中的一些方法/构造函数。将 Date 类与 DateFormat 或 Calendar 结合使用仍然可以
  • 它不会但很快就会打开 api 几乎所有东西都已弃用

标签: android date calendar


【解决方案1】:

一步一步:

  1. 使用SimpleDateFormat 从您的字符串创建Date 对象
  2. 使用带有Calendars setTime-方法的日期来设置日期
  3. 使用Calendar-object 获取您需要的任何内容。

一个简短的例子:

Calendar calendar = Calendar.getInstance();
calendar.setTime(new SimpleDateFormat("dd").parse(s));
int day_of_week = calendar.get(Calendar.DAY_OF_WEEK);

您可以在其中添加 TimeZoneLocale。此外,s 是您的日期字符串。

【讨论】:

  • 感谢非常愚蠢地问我,但它说类型不匹配
【解决方案2】:
Calendar cal = Calendar.newInstance()
cal.set(2011, 10, 31, 11, 0, 0)
int day = cal.get(Calendar.DAY_OF_WEEK);

您可以查看Calendar class 的文档,了解您可以设置哪些字段来获取您的日期。

【讨论】:

  • 谢谢,但我必须手动解析年份、月份并将其传递给日历,使用日期非常简单,如上所述,我不想使用它
  • 我以为你不想使用日期?
  • 是的,我不想使用日期,但这种方法导致我手动解析
  • 那么请澄清你的问题。你想解析一个String还是你想做什么?
  • 这很简单,我不想使用日期类,而是想从给定日期上方获取星期几
【解决方案3】:

您可以使用SimpleDateFormat 类解析日期并格式化日期。

String dateStr = "2011-10-31 11:00:00"; 

SimpleDateFormat curFormater = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
Date dateObj = curFormater.parse(dateStr); 

SimpleDateFormat df = new SimpleDateFormat("dd");     // "yyyy-MM-dd HH:mm:ss"
String formattedDate = df.format(date);

Toast.makeText(this, formattedDate, Toast.LENGTH_SHORT).show();

检查并告诉我

【讨论】:

  • 但我不想传递当前时间它应该来自字符串类型日期
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-07
  • 2018-07-03
  • 2014-02-19
  • 2011-06-12
相关资源
最近更新 更多