在Android中,每个事件的日期(例如生日和纪念日)都以String格式保存,例如“ 2011-12-24”。
至少我的手机是这种情况。如果某些其他电话的日历与公历不同,则可能以其他格式存储这些日期。
即使对于带有公历日历设置的电话,也存在带小时和分钟且不带日期和日期的日期字符串。当我查询联系人表中的事件时,得到这样的日期字符串:
cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Event.START_DATE))
结果是(例如):
“ 2011-12-14”或“ 2011-12-24T00:00:00Z”
您会看到有许多不同的可能格式。为了计算日期,我需要将它们从String转换为Date对象,不是吗?
我怎样才能做到这一点?
PS:我知道有一个Java日期对象的解析函数:
DateFormat myDateFormat = new SimpleDateFormat("dd/MM/yy");
Date tempDate = myDateFormat.parse("24/12/2011");
但是在Android中,我不知道会遇到哪种格式,对吗?
Android使用日期对象。任何时候您需要从字符串中解析日期是因为该日期已被序列化,很可能是在文件中。在这种情况下,您会知道所使用的格式。日期对象用于首选项,日期对象几乎在所有我能想到的与共享服务,活动等有关的地方都使用。这意味着,几乎不需要从日期解析字符串,除非像我说的那样序列化的源,可以从Web服务中读取它,等等。如果您可以告诉我们您的情况,则可能会得到更具体的答案。
您可以这样获取当前设置的日期格式:
DateFormat dateFormat = android.text.format.DateFormat.getDateFormat(getApplicationContext());
我正在尝试转换一个表示存储在SQLite中的日期的字符串。 日期存储到sqlite中,如下所示: 根据Java文档,方法: 返回此日期的字符串表示形式。格式设置相当于使用具有格式字符串“eee MMM dd hh:mm:ss zzz yyyy”的SimpleDateFormat,看起来类似于“tue Jun 22 13:07:00 PDT 1999”。则使用当前默认时区和区域设置。如果需要控制时区
问题内容: 我陷入了一个问题,将不胜感激。我已经阅读了很多讨论,但它们似乎对我没有用。 如何将其转换为日期对象?我要这样做的原因是因为我想在google图表指令中使用它,其中列之一必须是日期。我不想将列类型设置为字符串: 例如: 问题答案: 这是我在控制器上所做的 我最终将日期格式化为所需的指令格式,如下所示。 这使我在图表的x轴上以dd / MM / yyyy(26/04/2002)的格式输入日
问题内容: 我需要有关此java方法的一些建议。此方法的目的是采用表示日期的字符串-该字符串是从EST时区中的日期创建的-并将其转换为UTC时区中的java Date对象。 我看到的问题是dt的值似乎已关闭。例如,如果dateString为‘10 / 16/2012 12:06 PM’-我期望dt(以UTC为单位)的值类似于“ 2012年10月16日,星期二,下午4:06”。取而代之的是,dt的值
问题内容: 我有一个创建日期或对象的日期的表示形式。我已经通过看和,但没有发现任何可以比创建我自己的丑陋的解析方法做其他。我知道一定有办法,有人知道解决方案吗? 问题答案: 简单来说: 有关更多信息,请参见。 并将其转换为,请执行以下操作:
我正在做一个应用程序,使用API提供数据与时间戳。时间戳如下所示: 如何将这种格式的日期(Tue Jul 13 00:00:00 CEST 2010)转换为Java日期(字符串来自alfresco属性) 用java将字符串转换为日期
问题内容: 是否可以将“ 20110210”转换为2011-02-10? 我试过,我得到 我究竟做错了什么? 我有新的SimpleDateFormat(“ yyyy-MM-dd”)而不是新的SimpleDateFormat(“ yyyyMMdd”) 问题答案: 这对我有用,不会引发异常: