【发布时间】:2018-05-19 15:53:55
【问题描述】:
根据How to convert Standard Date into minutes in java? 信息,我按照这种技术将日期转换为分钟,但输出不是预期值(例如,12 小时 -> 应该是 720 分钟)。
这是我的源代码
SimpleDateFormat sdf = new SimpleDateFormat("hh");
Date theDate = sdf.parse ("12");
long minutes22 = (theDate.getTime() / 1000) / 60;
System.out.println("Minute "+minutes22);
输出为 -420。谁能给我解释一下?
新问题是切割字符串。
对于另一个输入,我尝试做自己的解决方案,但是在完成切割字符串后出现问题。我发现重复值不能分开保存。我不知道为什么会发生,因为我保存在不同的索引中。有什么建议吗?
这是另一个我的另一个源代码。
String date = "Sun 10:00-20:00\r\n" +
"Fri 05:00-10:00\r\n" +
"Fri 16:30-23:50\r\n" +
"Sat 10:00-24:00\r\n" +
"Sun 01:00-04:00\r\n" +
"Sat 02:00-06:00\r\n" +
"Tue 03:30-18:15\r\n" +
"Tue 19:00-20:00\r\n" +
"Wed 04:25-15:14\r\n" +
"Wed 15:14-22:40\r\n" +
"Thu 00:00-23:59\r\n" +
"Mon 05:00-13:00\r\n" +
"Mon 15:00-21:00";
List<String> Hour = new ArrayList<String>();
int loop = 0;
String [] replacement = {"sun","mon","tue","wed","thu","fri","sat"};
String new_s = date.toLowerCase().replaceAll(" ","");
for(int j = 0;j<replacement.length;j++)
{
new_s = new_s.replace(replacement[j],"").replace("\r\n","");
}
String temp = "";
temp = temp+new_s.replaceAll("-","");
int show = 0;
while(!temp.equals(""))
{
Hour.add(temp.substring(loop,loop+5));
temp = temp.replace(temp.substring(0,loop+5),"");
System.out.println("Hour "+Hour.get(show));
show++;
}
这是输出
Hour 10:00
Hour 20:00
Hour 05:00
Hour 16:30
Hour 23:50
Hour 24:00
Hour 01:00
Hour 04:00
Hour 02:00
Hour 06:00
Hour 03:30
Hour 18:15
Hour 19:00
Hour 04:25
Hour 15:14
Hour 22:40
Hour 00:00
Hour 23:59
Hour 13:00
Hour 15:00
Hour 21:00
另一个问题 - 为什么会打印出
LocalTime froms = LocalTime.parse("20:00", DateTimeFormatter.ofPattern("HH:mm", Locale.ENGLISH));
System.out.println("TIme "+froms.getMinute());'
【问题讨论】:
-
会不会是时区问题?
-
也可以试试 TimeUnit.HOURS.toMinutes(12) // 720
-
尝试打印日期,你会看到问题,解析产生了错误的日期。将
hh更改为HH即可(取决于时区问题)。 -
您是否仍然使用旧的 Date API (
Date) 而不是新的 (LocalDate,LocalDateTime, ...)?
标签: java duration datetime-conversion minute