相关疑难解决方法(0)

Instant和LocalDateTime有什么区别?

我知道:

  • Instant是用于计算的"技术"时间戳表示(纳秒).
  • LocalDateTime是日期/时钟表示,包括人类的时区.

仍然最终IMO都可以作为大多数应用程序用例的类型.例如:目前我正在运行一个批处理作业,我需要根据日期计算下一次运行,我很难找到这两种类型之间的优缺点(除了Instant的纳秒级精度优势和时区部分) of LocalDateTime).

您能说出一些应用示例,其中只应使用Instant或LocalDateTime吗?

编辑:注意有关精度和时区的LocalDateTime的误读文档

java datetime java-8

205
推荐指数
5
解决办法
8万
查看次数

如何在某一天添加​​一天?

我想在特定日期添加一天.我怎样才能做到这一点?

Date dt = new Date();
Run Code Online (Sandbox Code Playgroud)

现在我想在这个日期添加一天.

java datetime

199
推荐指数
8
解决办法
46万
查看次数

Java:为什么不推荐使用Date构造函数,而是使用什么呢?

我来自C#世界,所以对Java还没有太多经验.Eclipse刚刚告诉他们Date已经弃用了.

Person p = new Person();
p.setDateOfBirth(new Date(1985, 1, 1));
Run Code Online (Sandbox Code Playgroud)

为什么?应该使用什么(特别是在上面的情况下)呢?

java date deprecated

194
推荐指数
9
解决办法
18万
查看次数

如何在没有时间部分的情况下比较两个日期?

我想有一个compareTo方法忽略java.util.Date的时间部分.我想有很多方法可以解决这个问题.什么是最简单的方法?

java

191
推荐指数
14
解决办法
26万
查看次数

如何使用Java日历从日期中减去X天?

有人知道使用Java日历从日期中减去X天的简单方法吗?

我无法找到任何允许我直接从Java中的日期减去X天的函数.有人能指出我正确的方向吗?

java calendar subtraction

171
推荐指数
6
解决办法
25万
查看次数

使用AM/PM以12小时格式显示当前时间

目前时间显示为13:35 PM 但是我希望以AM/PM显示为12小时格式,即下午1:35而不是下午13:35

目前的代码如下

private static final int FOR_HOURS = 3600000;
private static final int FOR_MIN = 60000;
public String getTime(final Model model) {
    SimpleDateFormat formatDate = new SimpleDateFormat("HH:mm a");
    formatDate.setTimeZone(userContext.getUser().getTimeZone());
    model.addAttribute("userCurrentTime", formatDate.format(new Date()));
    final String offsetHours = String.format("%+03d:%02d", userContext.getUser().getTimeZone().getRawOffset()
    / FOR_HOURS, Math.abs(userContext.getUser().getTimeZone().getRawOffset() % FOR_HOURS / FOR_MIN));
    model.addAttribute("offsetHours",
                offsetHours + " " + userContext.getUser().getTimeZone().getDisplayName(Locale.ROOT));
    return "systemclock";
}
Run Code Online (Sandbox Code Playgroud)

java date-format

171
推荐指数
10
解决办法
36万
查看次数

如何通过特定日期确定星期几?

例如,我有日期:"2010年2月23日"(2010年2月23日).我想将它传递给一个可以返回星期几的函数.我怎样才能做到这一点?

在此示例中,函数应返回String"Tue".

此外,如果只需要日序,那么如何检索?

java date

169
推荐指数
12
解决办法
42万
查看次数

如何将毫秒转换为"hh:mm:ss"格式?

我糊涂了.在绊倒这个线程之后,我试图弄清楚如何格式化具有该格式的倒数计时器hh:mm:ss.

这是我的尝试 -

//hh:mm:ss
String.format("%02d:%02d:%02d", 
    TimeUnit.MILLISECONDS.toHours(millis),
    TimeUnit.MILLISECONDS.toMinutes(millis) - 
    TimeUnit.MINUTES.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)),
    TimeUnit.MILLISECONDS.toSeconds(millis) - 
    TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis)));   
Run Code Online (Sandbox Code Playgroud)

所以,当我尝试一个类似的值3600000ms,我得到01:59:00,这是错误的,因为它应该是01:00:00.显然我的逻辑有问题,但此刻,我看不出它是什么!

有人可以帮忙吗?

编辑 -

固定它.这是格式化毫秒hh:mm:ss格式的正确方法-

//hh:mm:ss
String.format("%02d:%02d:%02d", 
    TimeUnit.MILLISECONDS.toHours(millis),
    TimeUnit.MILLISECONDS.toMinutes(millis) - 
    TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)),
    TimeUnit.MILLISECONDS.toSeconds(millis) - 
    TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis))));
Run Code Online (Sandbox Code Playgroud)

问题是这个TimeUnit.MINUTES.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)).应该是这样的TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)).

java time-format countdowntimer

165
推荐指数
14
解决办法
20万
查看次数

将日期字符串解析为java.util.Date时出现非法模式字符"T"

我有一个日期字符串,我想解析它到正常日期使用java Date API,以下是我的代码:

public static void main(String[] args) {
    String date="2010-10-02T12:23:23Z";
    String pattern="yyyy-MM-ddThh:mm:ssZ";
    SimpleDateFormat sdf=new SimpleDateFormat(pattern);
    try {
        Date d=sdf.parse(date);
        System.out.println(d.getYear());
    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

但是我有一个例外: java.lang.IllegalArgumentException: Illegal pattern character 'T'

所以我想知道我是否必须拆分字符串并手动解析它?

顺便说一句,我试图在T的两边添加单引号字符:

String pattern="yyyy-MM-dd'T'hh:mm:ssZ";
Run Code Online (Sandbox Code Playgroud)

它也行不通.

java date iso8601 simpledateformat

164
推荐指数
2
解决办法
11万
查看次数

在Java中将String转换为Calendar对象

我是Java新手,通常使用PHP.

我想转换这个字符串:

2011年3月14日星期四16:02:37 GMT

进入一个Calendar对象,这样我就可以像这样轻松地拉出Year和Month:

String yearAndMonth = cal.get(Calendar.YEAR)+cal.get(Calendar.MONTH);
Run Code Online (Sandbox Code Playgroud)

手动解析是不是一个坏主意?使用子字符串方法?

任何建议都会有所帮助!

java datetime calendar date simpledateformat

163
推荐指数
6
解决办法
30万
查看次数