Android - 字符串到时间(仅)使用简单日期格式
Android - String to Time(only) using Simple Date Format
所以我想做的基本上是,我有一个字符串变量,我正在尝试将该字符串转换为时间格式,这样我就可以使用那个时间来创建一个警报天.
例如。
字符串 stringTime = "1:05 下午"
我想将其转换为日期格式,以便在下一个 1:05PM 时设置闹钟。
当我尝试使用 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 下午是 "Thu Jan 01 13:05:00 GMT 1970"。我完全不知道我应该如何进行。请记住,我只想要时间,而且我需要它以一种我可以用它来设置闹钟的方式。时间将存储在 DATE 数组中(或您认为更合适的任何数组)。 24 小时或 12 小时都可以!
您的简单日期格式应为:
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());
}
通过 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);
所以我想做的基本上是,我有一个字符串变量,我正在尝试将该字符串转换为时间格式,这样我就可以使用那个时间来创建一个警报天.
例如。
字符串 stringTime = "1:05 下午"
我想将其转换为日期格式,以便在下一个 1:05PM 时设置闹钟。
当我尝试使用 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 下午是 "Thu Jan 01 13:05:00 GMT 1970"。我完全不知道我应该如何进行。请记住,我只想要时间,而且我需要它以一种我可以用它来设置闹钟的方式。时间将存储在 DATE 数组中(或您认为更合适的任何数组)。 24 小时或 12 小时都可以!
您的简单日期格式应为:
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());
}
通过 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);