小编StK*_*ler的帖子

为什么同一时间的Unix时间戳在不同的时区有所不同

为什么7/18/2013 11:33GMT时区和我当地的时区(亚洲/加尔各答)有所不同?因为Unix时间戳是从纪元时间开始计算的滴答,1/1/1970 00:00:00 GMT所以我知道在不同时区以不同的间隔发生了纪元时间但仍然存在.经过的秒数应该相同

例如,如果我(+5:30 GMT)和我的朋友(+5:00 GMT)分别从00:00开始计算滴答,那么在18:00时,两个时区的滴答数应相同.那么为什么同样的事情不适用于Unix时间戳.

需要充分理解这个概念.

datetime timestamp epoch unix-timestamp

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

Intellij Idea - 模糊的方法调用

我使用Intellij Idea遇到了与Java相关的奇怪错误.

所以有这样的界面:

<T> void save(T aEntity, DbTransaction dbTransaction, Class<T> clazz);
<T> void save(Collection<T> aEntities, DbTransaction dbTransaction, Class<T> clazz);
Run Code Online (Sandbox Code Playgroud)

当我尝试编译下一个代码时:

@SuppressWarnings("unchecked")
@Override
public void save(Collection<T> aEntities, DbTransaction aDbTransaction) {
    baseDao.save(aEntities, aDbTransaction, getClass((T) aEntities.toArray()[0]));
}
Run Code Online (Sandbox Code Playgroud)

我收到下一个编译错误:

reference to save is ambiguous, both method <T>save(T,DbEntityHelper.DbTransaction,java.lang.Class<T>) in xzc.dao.IBaseDao and method <T>save(java.util.Collection<T>,DbEntityHelper.DbTransaction,java.lang.Class<T>) in xzc.dao.IBaseDao match
Run Code Online (Sandbox Code Playgroud)

你有什么想法 ?提前感谢您的帮助.

java generics intellij-idea

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

SQL从表中选择最大值

在我的采访中,我问它是如何可以选择从DB最大值没有关键字MAXTOP.

我的回答是:

select Table.Value 
from Table 
where Table.Value >= all( select Table.Value from Table) 
Run Code Online (Sandbox Code Playgroud)

但这不是正确的.面试官说我应该只选择一个.

有任何想法吗 ?

谢谢 ;)

t-sql max

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

将XML自关闭标记替换为空标记

我必须比较XML数据.有两个来源 -

  • 网络服务
  • XML文件

我没有看到任何简单的方法来在同一个类中转换它们并使用equals方法.

使用Web服务的类是自动生成的,WSDL根本不简单.

所以我从Web Service读取响应,读取相应的文件,将它们转换为具有相同格式的String(删除空格,\n\r \n字符等),然后使用String.equals()方法.

问题是Web服务的空标签是下一个写的:

<EmptyTag/>
Run Code Online (Sandbox Code Playgroud)

但提供的文件包含这种空标记:

<EmptyTag></EmptyTag>
Run Code Online (Sandbox Code Playgroud)

好的,有一种方法可以手动准备所有提供的文件,但我不喜欢它.谁知道,如何将空标签转换为相同的样式?如果有任何想法如何简化处理 - 欢迎你;)

UPDATE

我不解析xml.只读取文件的数据并将其转换为预期的格式.Web Service响应中的对象结构将以下一种方式转换为xml字符串:

    marshaller.marshal(new JAXBElement<response_class_name>(new QName("response_class_name"),
       response_class_name.class, response_object), stringWriter);
Run Code Online (Sandbox Code Playgroud)

java xml compare

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

Joda-Time,夏令时计算,时区独立测试

我们在应用程序中使用固定时间段.当用户添加新的时段时,默认情况下应该是第二天的上午6:00到下午6:00.

通常情况下,它是24小时,但有一个问题:当执行夏令时更改时,该时间段的长度会发生变化.例如 :

10月27日上午6:00至10月28日上午6:00.在此期间执行从CEST到CET时区的转换.因此,这个时期包含25个小时:

From 27 October 6:00 AM to 28 October 3:00 AM - there are 21 hours
at 3:00 am the time is shifted back by 1 hour, so there are 4 hours until 28 October 6:00 AM.
Run Code Online (Sandbox Code Playgroud)

我们遇到了这个问题并尝试编写单元测试以防止它再次出现.测试在我们的计算机上成功通过,但在CI服务器上失败(它在另一个时区).

问题是:我们怎样才能独立于机器的时区设计我们的单元测试?

目前,使用Joda-Time计算小时跨度:

    if ((aStartDate == null) || (aEndDate == null)) {
        return 0;
    }
    final DateTime startDate = new DateTime(aStartDate);
    final DateTime endDate = new DateTime(aEndDate);
    return Hours.hoursBetween(startDate, endDate).getHours();
Run Code Online (Sandbox Code Playgroud)

在我们这边传递但在CI服务器上失败的单元测试:

    Calendar calendar = Calendar.getInstance();
    calendar.set(2012, Calendar.OCTOBER, 27, …
Run Code Online (Sandbox Code Playgroud)

java period jodatime dst

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

瞬态字段的Java序列化

我正在阅读Thinking in Java 4th Edition.描述了transient字段序列化的奇怪解决方法:

import java.io.*;

public class SerializationTest implements Serializable {
    private String firstData;
    //transient field, shouldn't be serialized.
    transient private String secondData;

    public SerializationTest(String firstData, String test2) {
        this.firstData = firstData;
        this.secondData = test2;
    }

    /**
     * Private method, same signature as in Serializable interface
     *
     * @param stream
     * @throws IOException
     */
    private void writeObject(ObjectOutputStream stream) throws IOException {
        stream.defaultWriteObject();
        stream.writeObject(secondData);
    }

    /**
     * Private method, same signature as in Serializable interface …
Run Code Online (Sandbox Code Playgroud)

java reflection serialization

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

使用Java构造函数的麻烦

    public class Test {
        public static void main(String[] args) {
        }

        tost() {
        }
    }
Run Code Online (Sandbox Code Playgroud)

为什么compilator说我"Test.java:5:无效的方法声明;需要返回类型"?

java

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

为什么消费者不是此计划中的consumin数据

我是java的新手,我正在尝试实现简单的生产者消费者问题.下面是我为测试它而编写的代码.我有3个类,主类,生产者类和消费者类.现在的问题是我的生产者正在生产数据,但我的消费者并没有消费它.有人可以解释一下为什么会发生这种情况.提前致谢.

public class ProducerConsumerWithQueue {
    /**
     * @param args
     */
    public static void main(String[] args) {

        ArrayList<String > queue = new ArrayList<String>();         
        Producer producer = new Producer( queue);           
        Consumer consumer = new Consumer( queue);

        consumer.start();
        producer.start();   
    }
}


public class Producer extends Thread{
    ArrayList<String> queue;
        public Producer(ArrayList<String> queue) {
        this.queue = queue;
    }

    public void run(){
        System.out.println("Producer Started");
        System.out.println("Producer size "+queue.size());
        for(int i=0;i<50;i++){
            try {
                    synchronized (this) {               
                    if(queue.size()>10){
                        System.out.println("Producer Waiting");
                        wait();
                    }else{
                        System.out.println("producing "+i);
                        queue.add("This is "+i);
                        notifyAll();
                    } …
Run Code Online (Sandbox Code Playgroud)

java producer-consumer

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