0

我正在查询我的数据库以显示基于日期列的行。我有正确运行的方法,但我必须更改数据库中日期值的格式。以前,我的日期为 yyyyMd,例如今天将得到 201252。然后我将日期解析为 Long 并将其传递给我的方法

        String sd = hiddenDate.getText().toString();
    long aLong = Long.parseLong(sd);
    dba.open();
    String[] rScr = dba.getTodayMethod(aLong);

但我不得不将日期格式重写为 yyyy-My。然后日期中的破折号打破了我认为的“parseLong”。似乎只是将 sd 变量传递到 getTodayMethod 中,String[] rScr = dba.getTodayMethod(sd);也不起作用。那么我应该将 String sd 解析成什么来容纳日期中的破折号?以及如何编写解析代码?

4

1 回答 1

1

从根本上说,您尝试将其解析为很长的开头是在做错事。它不是 64 位整数的文本表示 - 它是date的文本表示。所以使用与日期/时间有关的类型。

就我个人而言,我喜欢使用Joda Time,但如果你在 Android 上可能对你来说太大了——在这种情况下,你将不得不使用java.util.Dateand java.util.Calendar,尽管它们很糟糕,然后java.text.SimpleDateFormat用于解析。(不要忘记适当地设置语言环境和时区......)

于 2012-05-02T20:22:25.843 回答