小编Ole*_*.V.的帖子

仅计算两个日期之间的工作时间,Java 中不包括周末

我需要帮助,如何计算两个日期之间的营业时间?例如我们有两个日期;01/01/2017 10:00 和 04/01/2017 15:00。我们工作日的工作时间是 09:30 到 17:30(8 小时)。如何使用 Java 计算工作时间和分钟数?

谢谢你的帮助。

java datetime hour weekday

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

如何用java中的两个或三个毫秒数字解析日期时间?

这是我将String解析成的方法LocalDateTime.

    public static String formatDate(final String date) {
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SS");
        LocalDateTime formatDateTime = LocalDateTime.parse(date, formatter);
        return formatDateTime.atZone(ZoneId.of("UTC")).toOffsetDateTime().toString();
    }
Run Code Online (Sandbox Code Playgroud)

但这仅适用于输入字符串, 2017-11-21 18:11:14.05 但无法2017-11-21 18:11:14.057 使用DateTimeParseException.

如何定义适用于.SS.SSS?的格式化程序?

java datetime-format datetime-parsing java-time dateformatter

7
推荐指数
3
解决办法
2930
查看次数

java.sql.Time异常

有人遇到过类似的事情吗?切换到JAVA 9之后,我遇到了这样的问题

Caused by: java.lang.NoClassDefFoundError: java/sql/Time
    at com.google.gson.Gson.<init>(Gson.java:240)
    at com.google.gson.GsonBuilder.create(GsonBuilder.java:569)
    at net.thucydides.core.reports.json.gson.GsonJSONConverter.<init>(GsonJSONConverter.java:50)
    at net.thucydides.core.reports.json.gson.GsonJSONConverter$$FastClassByGuice$$6794eb79.newInstance(<generated>)
    at com.google.inject.internal.DefaultConstructionProxyFactory$FastClassProxy.newInstance(DefaultConstructionProxyFactory.java:89)
    at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:111)
    at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:90)
    at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:268)
    at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:56)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
    at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
    at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:194)
    at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
    at com.google.inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:1019)
    at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1085)
    at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1015)
    ... 25 more
Caused by: java.lang.ClassNotFoundException: java.sql.Time
    at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:466)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:563)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)
    ... 42 more
Run Code Online (Sandbox Code Playgroud)

我尝试了不同的Java版本,也没有更新gson库,我的意思是相同的程序包正在Java 8上运行。有什么建议吗?

java gson classnotfoundexception java-9

7
推荐指数
3
解决办法
2457
查看次数

在语言建模中,为什么我必须在每个新的训练时期之前 init_hidden 权重?(pytorch)

我对pytorch语言建模中的以下代码有疑问:

print("Training and generating...")
    for epoch in range(1, config.num_epochs + 1): 
        total_loss = 0.0
        model.train()  
        hidden = model.init_hidden(config.batch_size)  

        for ibatch, i in enumerate(range(0, train_len - 1, seq_len)):
            data, targets = get_batch(train_data, i, seq_len)          
            hidden = repackage_hidden(hidden)
            model.zero_grad()

            output, hidden = model(data, hidden)
            loss = criterion(output.view(-1, config.vocab_size), targets)
            loss.backward()  
Run Code Online (Sandbox Code Playgroud)

请检查第 5 行。

init_hidden 函数如下:

def init_hidden(self, bsz):
    weight = next(self.parameters()).data
    if self.rnn_type == 'LSTM':  # lstm?(h0, c0)
        return (Variable(weight.new(self.n_layers, bsz, self.hi_dim).zero_()),
                Variable(weight.new(self.n_layers, bsz, self.hi_dim).zero_()))
    else:  # gru & rnn?h0
        return Variable(weight.new(self.n_layers, …
Run Code Online (Sandbox Code Playgroud)

nlp machine-learning recurrent-neural-network pytorch

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

Log4j,意思是Append = true/false

log4j.appender.LOGFILE.Append = true

医生说:

如果append参数为true,则将附加该文件.否则,文件名指定的文件将在打开之前被截断.

这是否意味着如果Append = true,新日志将被附加到文件的尾部?然后"截断"表示什么?在打开文件之前将删除内容?

谢谢.

java log4j

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

使用SimpleDateFormat时,未知的模式字符'x'

我试图将a格式化DateString使用SimpleDateFormat,而im使用的模式就是这个

"YYYY-MM-dd'T'HH:MM:ss.SSSxxx"

但到达这条线时

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSxxx");
Run Code Online (Sandbox Code Playgroud)

我得到以下异常:

java.lang.IllegalArgumentException:在java.text.SimpleDateFormat的java.text.SimpleDateFormat.validatePattern(SimpleDateFormat.java:312)的java.text.SimpleDateFormat.validatePatternCharacter(SimpleDateFormat.java:323)中的未知模式字符'x'. SimpleDateFormat.java:365)at java.text.SimpleDateFormat.(SimpleDateFormat.java:258)

我试图实现的格式是" 2017-06-16T12:19:59.001 + 02:00 "

根据文档这个模式应该工作什么错了?

编辑 为了澄清,我尝试了xxx和XXX

在XXX的情况下我得到java.lang.IllegalArgumentException:未知的模式字符'X'

java android simpledateformat android-date

6
推荐指数
3
解决办法
4798
查看次数

两个实例之间的Java年份

在Joda中,我们可以计算2个Datetime之间的年份

Years.between(dateTime1, dateTime2);
Run Code Online (Sandbox Code Playgroud)

是否有任何简单的方法可以在2个时刻之间找到使用java.timeAPI而没有太多逻辑的年份?

ChronoUnit.YEARS.between(instant1, instant2)
Run Code Online (Sandbox Code Playgroud)

失败:

Exception in thread "main" java.time.temporal.UnsupportedTemporalTypeException: Unsupported unit: Years
        at java.time.Instant.until(Instant.java:1157)
        at java.time.temporal.ChronoUnit.between(ChronoUnit.java:272)
        ...
Run Code Online (Sandbox Code Playgroud)

java datetime date-difference java-8 java.time.instant

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

为什么 Keras 损失在第一个 epoch 之后急剧下降?

我正在 Keras/Tensorflow 中训练 U-Net CNN,发现第一个时期的最后一批和第二个时期的第一批之间的损失大幅减少:

Epoch 00001: loss improved from inf to 0.07185 - categorical_accuracy: 0.8636
Epoch 2/400: 1/250 [.....................] - loss: 0.0040 - categorical_accuracy: 0.8878
Run Code Online (Sandbox Code Playgroud)

奇怪的是,分类准确率并没有随着损失而下降,而是略有增加。损失下降后,不会进一步减少,而是稳定在较低值附近。我知道关于该问题的信息很少,但这种行为可能表明存在一个常见问题,我可以进一步调查吗?

一些额外信息:Optimizer = Adam(lr=1e-4)(降低 lr 似乎没有帮助)

损失:‘类别加权分类交叉熵’,计算如下

def class_weighted_categorical_crossentropy(class_weights):
        
        def loss_function(y_true, y_pred):

        # scale preds so that the class probas of each sample sum to 1
        y_pred /= tf.reduce_sum(y_pred, -1, True)
        # manual computation of crossentropy
        epsilon = tf.convert_to_tensor(K.epsilon(), y_pred.dtype.base_dtype)
        y_pred = tf.clip_by_value(y_pred, epsilon, 1. - epsilon)

        # Multiply each class by its weight: …
Run Code Online (Sandbox Code Playgroud)

python loss keras

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

如何在下午 4 点和凌晨 2 点之间的两个时间生成随机时间?

我试过使用 -

int startSeconds = restaurant.openingTime.toSecondOfDay();
int endSeconds = restaurant.closingTime.toSecondOfDay();
LocalTime timeBetweenOpenClose = LocalTime.ofSecondOfDay(ThreadLocalRandom.current().nextInt(startSeconds, endSeconds));
Run Code Online (Sandbox Code Playgroud)

但这通常会遇到错误,如 nextInt(origin, bounds), origin 不能小于 bounds,如果 myopeningTime是 16:00:00 和closingTime02:00:00 ,则会发生这种情况。

java random time localtime java-time

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

将 Instant 转换为 OffsetDateTime,然后 OffsetDateTime 上的 Instant.parse() 会导致零秒情况下的 DateTimeParseException

我从服务中收到即时消息,以下是案例。

在第一种情况下,说instant = "2021-03-23T04:17:35Z"& 在第二种情况下, instant = "2021-07-15T05:27:00Z"

然后需要将 instant 转换为 offsetDateTime,就像

OffsetDateTime offsetDateTime = instant.atOffset(ZoneOffset.UTC)
Run Code Online (Sandbox Code Playgroud)

现在我想计算上面的 offsetDateTime 和 instant.now 之间的小时差距

ChronoUnit.HOURS.between(Instant.parse(offsetDateTime), Instant.now())
Run Code Online (Sandbox Code Playgroud)

结果

情况1:工作正常

情况 2:错误:DateTimeParseException: Text '2021-07-15T05:27Z' could not be parsed at index 16

想通了原因: 在情况2中,如果它也能通过的话也是一样的2021-07-15T05:27:00Z。它会起作用,但在instant.atOffset(ZoneOffset.UTC)内部会调用下面的方法,其中零将被删除,基本上分钟部分将被整理出来。所以下面的 fn 将返回2021-07-15T05:27Z,这将导致 DateTimeParseException。

public static OffsetDateTime ofInstant(Instant instant, ZoneId zone) {
        Objects.requireNonNull(instant, "instant");
        Objects.requireNonNull(zone, "zone");
        ZoneRules rules = zone.getRules();
        ZoneOffset offset = rules.getOffset(instant);
        LocalDateTime ldt = LocalDateTime.ofEpochSecond(instant.getEpochSecond(), instant.getNano(), offset);
        return new …
Run Code Online (Sandbox Code Playgroud)

java java-8 java-time

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