Android 是否仅将字符串转换为时间?

Android 是否仅将字符串转换为时间?,android,Android,我从数据库中获取一个字符串并将其转换为时间,例如12:19,然后将其添加到时间选择器中。问题是它需要时间和日期,我似乎无法摆脱日期部分。我的代码在下面 public static final String TIME_FORMAT = "kk:mm"; String StartTime = reminder.getString(reminder.getColumnIndexOrThrow(DatabaseStore.START_TIME)); SimpleDateFormat dat

我从数据库中获取一个字符串并将其转换为时间,例如12:19,然后将其添加到时间选择器中。问题是它需要时间和日期,我似乎无法摆脱日期部分。我的代码在下面

 public static final String TIME_FORMAT = "kk:mm";
    String StartTime = reminder.getString(reminder.getColumnIndexOrThrow(DatabaseStore.START_TIME));

 SimpleDateFormat dateTimeFormat = new SimpleDateFormat(TIME_FORMAT);
    startTime = dateTimeFormat.parse(StartTime); 

    addTimeTopicker.setTime(startTime); 

您没有告诉日期格式化程序使用您的特定格式:

Date d = new Date(timeString);
SimpleDateFormat sdf = new SimpleDateFormat("hh:mm aa");
String newtimeString = sdf.format(d);
这将返回,例如:下午12:19

渴望它成为时间,如12:19,然后我把它添加到 计时器选择器

你的模式不好,不能用kk

因此您可以使用以下方法:

public static final String TIME_FORMAT = "h:mm";
Result: 12:01 [h is hour in AM / PM (1-12)]

public static final String TIME_FORMAT = "k:mm";
Result: 12:01 [k is hour in day (1-24)]

查看

抱歉,我忘了一行,我想我是在告诉它我使用的是SimpleDateFormat dateTimeFormat=new SimpleDateFormat(时间格式);这肯定是你的问题:但当我这样做时,我会像系统的默认时间一样返回,比如1970年1月1日12.30 GMT出于某种原因任何想法问题我做了一些愚蠢的事情如果你得到的是“1970年1月1日12.30 GMT”,那么这不仅仅是日期格式的问题。这是因为您正在将0传递给日期对象,该对象自1970年以来以毫秒为单位实例化。正如hawaii.five-0所说,你不能使用kk,而应该使用我上面列出的格式,因为它会恢复到你看到的默认格式。我将其更改为你上面所说的格式。使用hh:mm,它从数据库中获取内容,例如从数据库中的字符串获取11:11(该格式),但当我使用dateformat时(startTime=dateTimeFormat.parse(StartTimeUpdate);)当我检查startTime中的内容时,它会返回默认时间,例如1970年1月1日12.30 GMT