【发布时间】:2023-03-23 08:24:01
【问题描述】:
我有时间在下面的格式中
2015-10-28T18:37:04.899+05:30
我必须创建以下格式的插槽
11.00AM - 12.00PM 28/10/15
12.00PM - 1.00PM 28/10/15
1.00PM - 2.00PM 28/10/15
String timeValue = "2015-10-28T18:37:04.899+05:30";
StringTokenizer stringTokenizer = new StringTokenizer(timeValue,"T");
String dateValue = stringTokenizer.nextElement().toString();
String endDateValue = "2015-10-30";
String restString= stringTokenizer.nextElement().toString();
StringTokenizer secondTokeniser = new StringTokenizer(restString,":");
String hours = secondTokeniser.nextElement().toString();
String minutes = secondTokeniser.nextElement().toString();
hours = String.valueOf(Integer.parseInt(hours) + 2);
if (Integer.parseInt(minutes) > 30){
minutes = "00";
}else{
minutes = "30";
}
String amOrPm = null;
if(Integer.parseInt(hours) < 12){
amOrPm = "AM";
}else{
amOrPm = "PM";
hours = String.valueOf(getHoursValue(Integer.parseInt(hours)));
}
String time1 = hours + ":" + minutes + " " + amOrPm;
String time2 = "12" + ":" + "00" + " AM ";
String format = "yyyy-mm-dd hh:mm a";
SimpleDateFormat sdf = new SimpleDateFormat(format);
try {
Date dateObj1 = sdf.parse(dateValue + " " + time1);
Date dateObj2 = sdf.parse(endDateValue + " " + time2);
Logger.d(TAG, "Date Start: " + dateObj1);
Logger.d(TAG, "Date End: " + dateObj2);
long dif = dateObj1.getTime();
while (dif < dateObj2.getTime()) {
Date slot = new Date(dif);
Log.d(TAG, "Hour slot = " + slot);
dif += 1800000;
}
}catch (ParseException ex){
ex.printStackTrace();
}
通过上面的代码,我得到了以下输出
2015 年 1 月 28 日星期三 20:00:00 IST
2015 年 1 月 28 日星期三 20:30:00 IST
2015 年 1 月 28 日星期三 21:00:00 IST
2015 年 1 月 28 日星期三 21:30:00 IST
2015 年 1 月 28 日星期三 22:00:00 IST
2015 年 1 月 28 日星期三 22:30:00 IST
24 小时制
我想要下面的输出格式
11.00AM - 12.00PM 28/10/15
12.00PM - 1.00PM 28/10/15
1.00PM - 2.00PM 28/10/15
谁能帮我解决这个问题
【问题讨论】:
-
我真的不明白downvote的意思,这已经成为一种趋势
-
可能只是无缘无故投反对票的坏人
-
是的,我猜他们喜欢兄弟
-
是否有任何特定的登录来创建所需的输出!意味着无论日期如何,任何日期时间都将具有相同的时隙
-
@MiteshParmar ,不,没有任何特定的登录。是的,接下来的 1 天会有相同的时间段
标签: android date datetime simpledateformat