gpt4 book ai didi

java - 如何在java中将日期时间设置为一天结束

转载 作者:行者123 更新时间:2023-12-03 16:14:38 24 4
gpt4 key购买 nike

我想将一天的日期时间设置为:startDate=2018/03/28 00:00:00 和 endDate=2018/03/28 23:59:59

    Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd 00:00:00");
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd 23:59:59");
String str1=sdf1.format(cal.getTime());
String str2=sdf2.format(cal.getTime());
Date startDate = sdf1.parse(str1);
Date endDate = sdf2.parse(str2);

我的问题:程序正在运行并输出 endDate=2018/03/28 00:00:00

你能在代码中向我指出任何错误吗?

更新:
我使用了调试并且它工作正常
String str2=sdf2.format(cal.getTime());//2018-03-28 23:59:59

但是当更改字符串==>日期与输出不正确时 2018/03/28 00:00:00

最佳答案

如果要初始化 Date来自带有日期和时间的格式化字符串的实例,然后应该将时间码添加到 SimpleDateFormat模式来解析该格式的字符串。

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date startDate = sdf.parse("2018-03-28 00:00:00");
Date endDate = sdf.parse("2018-03-28 23:59:59");
如果您只想设置当前日期的小时、分钟和秒,请使用 Calendar实例并相应地在其上设置字段。
 Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0)

Date startDate = cal.getTime();
cal.set(Calendar.HOUR_OF_DAY, 23);
cal.set(Calendar.MINUTE, 59);
cal.set(Calendar.SECOND, 59);
cal.set(Calendar.MILLISECOND, 999)
Date endDate = cal.getTime();
然后以特定格式输出日期:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
System.out.println(sdf.format(startDate));
System.out.println(sdf.format(endDate));
输出:
2018/03/28 00:00:00
2018/03/28 23:59:59
处理时区
如果时区不是本地时区,那么明确说明您正在使用的时区是个好主意。 Calendar 和 SimpleDateFormat 实例必须与您正在处理的时区一致,否则日期和/或时间可能会关闭。
TimeZone utc = TimeZone.getTimeZone("UTC");
Calendar cal = Calendar.getInstance(utc);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
sdf.setTimeZone(utc);

关于java - 如何在java中将日期时间设置为一天结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49524562/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com