我尝试从下面的时间戳中提取小时+分钟。我试过这个:
<application>
<activity
android:configChanges="keyboardHidden|orientation"
android:name="org.appcelerator.titanium.TiActivity" android:screenOrientation="portrait"/>
<activity
android:configChanges="keyboardHidden|orientation"
android:name="org.appcelerator.titanium.TiTranslucentActivity"
android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent"/>
<activity
android:configChanges="keyboardHidden|orientation"
android:name="org.appcelerator.titanium.TiModalActivity"
android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent"/>
<activity
android:configChanges="keyboardHidden|orientation"
android:name="ti.modules.titanium.ui.TiTabActivity" android:screenOrientation="portrait"/>
<activity
android:name="ti.modules.titanium.ui.android.TiPreferencesActivity" android:screenOrientation="portrait"/>
</application>
但我得到一个&#34;未处理的异常:Java.text.parseException&#34;在这一行:
日期日期= sdf.parse(myTimeStampString);
有人可以帮助我吗?
答案 0 :(得分:3)
虽然你不清楚如何表达你的问题,但唯一合理的解释是没有抛出异常,而是指编译器错误。
ParseException是一个经过检查的异常,必须由源代码处理,否则将无法编译。我不确定您使用的是哪个编译器,Oracle JDK的Java编译器提供了更详细的错误描述:
错误:未报告的异常ParseException;必须被抓住或宣布 被抛出
答案 1 :(得分:0)
如果您只想获取包含"18:08"
字符串的部分并且您不想根据时区进行调整,那么您可以使用String#substring(start, end)
来提取该字符串字符串的一部分。
String fullTime = "2016-03-23 18:08:59";
String timeStr = fullTime.substring(11, 16); //extract "HH:mm" from "yyyy-MM-dd HH:mm:ss"
如果 DO 想要根据时区进行调整,请添加try
块。
String fullTime = "2016-03-23 18:08:59";
DateFormat df1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"),
df2 = new SimpleDateFormat("HH:mm");
df1.setTimeZone(TimeZone.getTimeZone("UTC"));
df2.setTimeZone(TimeZone.getTimeZone("IST"));
String timeStr = "";
try {
timeStr = df2.format(df1.parse(fullTime)); //parse throws ParseException
} catch (ParseException e) { /* handle this */ }
此代码将顶部的变量作为输入,以便在调整时区后将timeStr
更改为"HH:mm"
处的值。