Android - 使用简单日期格式的字符串到时间(仅限)

时间:2016-10-04 15:27:24

标签: java android simpledateformat

所以我想要做的基本上是,我有一个String变量,我正在尝试将该字符串转换为时间格式,以便我可以使用该时间为该日创建警报。

例如。

String stringTime =“1:05 PM”

我希望将其转换为日期格式,以便在下一个1:05 PM将警报设置为关闭。

当我尝试使用SimpleDateFormat时,它会显示为日期和时间,日期又回到1970年。请参阅下面的代码。

Date[] date_formatted_times_A;
SimpleDateFormat formatter = new SimpleDateFormat("h:m a");

public Date[] DateConverterA (String[] times_A){

            date_formatted_times_A = new Date[times_A.length];

            for(int i=0;i<times_A.length;i++)
            {
                try {
                    date_formatted_times_A[i] = formatter.parse(times_A[i]);



                } catch (java.text.ParseException e) {
                    e.printStackTrace();
                }
            }
            return date_formatted_times_A;

}

但是我得到的结果,在字符串时间是1:05 PM的情况下是“Thu Jan 01 13:05:00 GMT 1970”。我完全迷失了如何继续下去。请记住我只想要时间,我需要它以一种方式然后我可以使用它来设置它的警报。时间将存储在DATE数组中(或者您认为更合适的数组)。 24小时或12小时就好了!

2 个答案:

答案 0 :(得分:1)

您的简单日期格式应为:
SimpleDateFormat formatter = new SimpleDateFormat(hh:mm a");

尝试以下操作并自己学习不同的格式:

try {
   SimpleDateFormat format = new SimpleDateFormat("hh:mm a"); //if 24 hour format
   // or
   SimpleDateFormat format = new SimpleDateFormat("HH:mm"); // 12 hour format
   java.util.Date d1 =(java.util.Date)format.parse(your_Time);
   java.sql.Time ppstime = new java.sql.Time(d1.getTime());
} catch(Exception e) {
   Log.e("Exception is ", e.toString());
}

答案 1 :(得分:0)

放弃日期部分,仅通过GregorianCalendar使用时间字段(以避免弃用警告)。

GregorianCalendar timepoint=new GregorianCalendar();
timepoint.setTime(date); // date obtained by parsing
int hours=timepoint.get(Calendar.HOUR_OF_DAY);
int minutes=timepoint.get(Calendar.MINUTE);
int seconds=timepoint.get(Calendar.SECOND);