相关疑难解决方法(0)

如何在js-joda中比较LocalDate和ZonedDateTime?

我正在寻找一种方法来比较LocalDateZonedDateTimein的实例js-joda,但这些类不兼容。我愿意接受,这LocalDateZonedDateTime时间和时区设置为零的情况。

比较这两个对象的最简单方法是什么?

javascript datetime-comparison zoneddatetime js-joda localdate

3
推荐指数
1
解决办法
6392
查看次数

java.text.ParseException:无法解析的日期:java.text.DateFormat.parse(DateFormat.java:579)

我有问题SimpleDateFormat

SimpleDateFormat dtfmt=new SimpleDateFormat("dd MMM yyyy hh:mm a", Locale.getDefault());
Date dt=dtfmt.parse(deptdt);
Run Code Online (Sandbox Code Playgroud)

在 Android 模拟器中工作正常,但在手机中出现此错误:

W/System.err: java.text.ParseException: Unparseable date: "24 Oct 2016 7:31 pm" (at offset 3) W/System.err: at java.text.DateFormat.parse(DateFormat.java:579)

有什么解决办法吗?

java android date datetime-parsing unparseable

2
推荐指数
1
解决办法
1211
查看次数

Swift - 时区关闭一小时/秒FromGMT 不正确

这应该是一个非常简单的问题,但我似乎无法理解它。

鉴于我的时区是 EDT (GMT-4),为什么 GMT 的 04:00 变成 23:00 而不是 00:00?

// The offset is -4 hours
let offsetFromGMT = Calendar.current.timeZone.secondsFromGMT() / 60 / 60

// 2017-03-12 04:00
var destinationComponents = DateComponents()
destinationComponents.timeZone = TimeZone(secondsFromGMT: 0)
destinationComponents.year = 2017
destinationComponents.month = 03
destinationComponents.day = 12
destinationComponents.hour = -offsetFromGMT // 4 hours

// Why is this 2017-03-11 23:00 and not 2017-03-12 00:00?
let date = Calendar.current.date(from: destinationComponents)!
// Outputs 23
Calendar.current.dateComponents([.hour], from: date).hour
Run Code Online (Sandbox Code Playgroud)

timezone calendar ios swift

2
推荐指数
1
解决办法
4733
查看次数

如何向日历对象添加一天并考虑夏令时?

我正在尝试为列表中的对象创建时间限制。这可能意味着物品的保质期可能为 23、24 或 25 小时。有没有有用的 Java 库?这是我到目前为止所拥有的。

我的问题是,例如,当我在上午 9:30 创建记录时,必须在第二天上午 9:30 将其删除。当夏令时生效期间,我会遇到差异。该记录要么在 8:30 要么 10:30 被删除,具体取决于我是向前还是向后跳。

//baseValue = object that I want to check

Date dt = new Date();
Calendar c = Calendar.getInstance(); 
c.setTime(dt); 
c.add(Calendar.DATE, -1);

if(baseValue.getTime() < c.getTime()){
    array.remove(baseValue);
}
Run Code Online (Sandbox Code Playgroud)

java datetime date dst

2
推荐指数
1
解决办法
1261
查看次数

Joda-Java 8转换时间

如何在Java 8中实现以下功能java.time:

DateTime dt = new DateTime(year, month, date, hours, min, sec, milli);
Run Code Online (Sandbox Code Playgroud)

但我找到了这个选项:

OffsetDateTime.of(year, month, dayOfMonth, hour, minute, second, nanoOfSecond, offset)
Run Code Online (Sandbox Code Playgroud)

但它只有毫秒的方法.

我怎样才能达到与Joda-Time相同的效果?

datetime jodatime java-8 java-time

2
推荐指数
1
解决办法
4501
查看次数

Java 8时区转换

我知道有类似这样的问题,但我不太能找到与我相似的例子.我了解了LocalDateTime,ZonedDateTime但我不知道怎么告诉我ZonedDateTime假设解析日期的时区.

我正在从Java 7迁移到Java 8.在我的代码中,我有一个这样的方法:

public String changeTZ(String tzFrom, String tzTo, String dateToChange) {
    ZoneId zoneFrom = ZoneId.of(tzFrom);
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern(dateFormat.toPattern());
    LocalDateTime localtDateAndTime = LocalDateTime.parse(dateToChange, formatter);
    ZonedDateTime dateAndTimeINeed = ZonedDateTime.of(localtDateAndTime, zoneFrom );

    ZonedDateTime rezDate = dateAndTimeINeed.withZoneSameInstant(ZoneId.of(tzTo));

    return formatter.format(rezDate);
}
Run Code Online (Sandbox Code Playgroud)

示例用法是:

String rez = changeTZ("CEST", "UTC", "2017-08-10 14:23:58");
Run Code Online (Sandbox Code Playgroud)

正如你所看到的那样,它以字符串的形式接收日期时间,时区日期是tzFrom变量,而TZ我需要(toTo变量).

在Java 7中执行该操作的代码是荒谬而复杂的,因此我不会在此处进行讨论.你能告诉我如何在不改变方法接口(参数和返回类型)的情况下在Java 8中实现相同的功能吗?DST怎么样?它是在Java 8中自动处理的吗?

请注意,该方法还支持"CEST","CET","UTC"形式的时区以及"欧洲/伦敦"等标准时区.

java timezone datetime datetime-conversion java-time

2
推荐指数
2
解决办法
1912
查看次数

如何在 Java 中使用 Jackson Annotation 按原样反序列化时间戳?

我的 Java Bean 中有一个字段,如下所示,其中@JsonFormat包含 jackson 注释:

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm")
private Timestamp createdOn;
Run Code Online (Sandbox Code Playgroud)

当我返回 时Timestamp,它总是在我的 JSON 响应中转换为 UTC 时间。让我们说格式化我的时间戳,我得到2017-09-13 15:30但我的响应被返回为2017-09-13 10:00.

我知道这是因为 Jackson 注释默认采用 System TimeZone 并将时间戳转换为 UTC。(在我的情况下,服务器属于Asia/Calcutta时区,因此偏移量是+05:30,杰克逊映射器减去 5 小时 30 分钟以将时间戳转换为 UTC)

有没有办法按原样返回时间戳,即,2017-09-13 15:30而不是2017-09-13 10:00

java datetime json utc jackson

2
推荐指数
1
解决办法
8500
查看次数

如何使用java获取上一季度的详细信息

我已经达到上一季度,如下所示:

Date date = new Date();
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH);
int presentQuarter = (month / 3) + 1;
int lastQuarter = (presentQuarter - 1) > 0 ? presentQuarter - 1 : 4;
Run Code Online (Sandbox Code Playgroud)

我已经得到了,lastQuarter但我将如何得到上一季度的一年.

有人可以帮我这个吗?

java calendar date

1
推荐指数
1
解决办法
1678
查看次数

在URL中使用timezone参数发送日期和时间的接受方式

在OData/REST服务中,我想允许日期参数,startDateendDate标记返回数据的日期范围.例:

GET /events?startDate=XXX&endDate=YYY
Run Code Online (Sandbox Code Playgroud)

问题:

  1. URL中日期和时间的标准格式是什么?
  2. 我应该考虑添加时区(或UTC偏移)吗?如果没有添加时区,会有什么期望?

java rest url date odata

1
推荐指数
2
解决办法
4703
查看次数

获取简化的 ISO 8601 日期字符串的时区

我有两个日期字符串,每个字符串位于不同的时区。我认为这些字符串采用“简化”ISO 8601 格式。下面列出了两个示例日期。

  • 2017-08-14T18:41:52.793Z
  • 2017-08-14T23:41:52.000Z

第一个日期采用 CDT,第二个日期采用 UTC。我相信每个字符串的最后四位数字表示时区。

new Date()奇怪的是,当我为其中每一个设置时,我都通过 报告了不正确的日期console.log()。例如:

const local_date = new Date("2017-08-14T18:41:52.793Z");
const remote_date = new Date("2017-08-14T23:41:52.000Z");

console.log("local_date = " + local_date);
console.log("remote_date = " + remote_date);
Run Code Online (Sandbox Code Playgroud)

输出:

local_date = 2017 年 8 月 14 日星期一 13:41:52 GMT-0500(中部夏令时间)
Remote_date = 2017 年 8 月 14 日星期一 18:41:52 GMT-0500(中部夏令时间)

尽管 CDT 中提供了源日期,但似乎第一个日期被减去了 5 个小时;这就像假设两个日期都是以 UTC 格式提供的。

https://jsfiddle.net/nkax7cjx/1/

我在这里没有错什么?

javascript datetime date iso8601 timezone-offset

1
推荐指数
1
解决办法
7476
查看次数