将日期转换为不同的时区

我正在尝试使用Java日期和日历从一个时区到另一个时区进行简单的转换。 我试图运行以下代码 Calendar instance = Calendar.getInstance(TimeZone.getTimeZone(“Europe/London”)); Date date = instance.getTime(); System.out.println(date); GregorianCalendar instance2 = new GregorianCalendar(TimeZone.getTimeZone(“Europe/Athens”)); instance2.setTime(instance.getTime()); System.out.println(instance2.getTime()); 但仍然返回相同的日期,而不是+1小时…整个问题似乎微不足道,但我找不到任何简单的答案。 在此先感谢您的帮助。

Java套接字和丢弃的连接

检测套接字是否被丢弃的最合适方法是什么? 或者是否确实发送了数据包? 我有一个库,可以通过Apple gatways( 在GitHub上提供 )向Apple发送Apple推送通知。 客户端需要打开套接字并发送每条消息的二进制表示; 但不幸的是,Apple没有任何回复。 连接可以重复使用以发送多条消息。 我正在使用简单的Java Socket连接。 相关代码是: Socket socket = socket(); // returns an reused open socket, or a new one socket.getOutputStream().write(m.marshall()); socket.getOutputStream().flush(); logger.debug(“Message \”{}\” sent”, m); 在某些情况下,如果在发送消息时或之前删除了连接; Socket.getOutputStream().write()成功完成。 我预计这是由于TCP窗口尚未耗尽。 有没有办法可以确定数据包是否实际进入网络? 我尝试了以下两种解决方案: 插入额外的socket.getInputStream().read()操作,超时250ms。 这会强制在删除连接时失败的读取操作,否则会挂起250ms。 将TCP发送缓冲区大小(例如Socket.setSendBufferSize() )设置为消息二进制大小。 这两种方法都有效,但它们会严重降低服务质量; 吞吐量最多从100条消息/秒到大约10条消息/秒。 有什么建议么? 更新: 受到多个答案的质疑,质疑所描述的可能性。 我构建了我所描述的行为的“单元”测试。 查看Gist 273786的单元案例。 两个unit testing都有两个线程,一个服务器和一个客户端。 客户端发送数据时服务器关闭,而不会抛出IOException。 这是主要方法: public static […]

Java:如何将CLOB插入oracle数据库

我需要将XML文件内容写入oracle数据库,其中列是CLOB数据类型。 我该怎么做?

用Java检测USB驱动器

如何检测USB驱动器何时连接到Windows,Linux或Mac中的计算机? 我在网上看到的唯一方法是迭代驱动器,但我认为没有一种非常好的方法来实现跨平台(例如Linux中的File.listRoots()只返回“/”)。 即使在Windows中,这也会导致从每个设备读取问题,例如需要很长时间才能访问的网络驱动器。 有一个名为jUsb的库听起来像在Linux中完成了这个,但它在Windows中不起作用。 还有一个名为jUsb for Windows的扩展名,但这要求用户安装dll文件并运行.reg。 这些似乎都没有发展好几年,所以我希望现在有更好的解决方案。 当我只想检测是否连接了包含我需要的文件的设备时,它们对于我需要的东西也是过度的。 [编辑]此外,jUsb显然不适用于任何最新版本的Java,所以这甚至不是一个选项…… 谢谢

访问内部类中的外部类变量

在内部类中,可以访问外部类的变量,但不能访问方法的局部变量。 我理解关于方法的局部变量不可访问的部分,但我想知道为什么外部类变量是可访问的? 我的理解是,当一个内部类与外部类绑定时,只要父类可用,子进程就可以访问它的父变量。 我对么?

在Windows 7上,Java JVM如何设置“user.home”系统属性?

我正在使用JRE 1.7,我发现user.home系统属性非常不寻常。 JVM如何设置此值?

使用依赖项的资源?

在我的Maven项目中,有一个模块(核心),它的类有一些资源。 当在模块内部运行类时,它能够获得自己的资源。 一切正常。 在东西中断的时候,依赖于核心的另一个模块试图运行该类。 Java正在寻找资源的文件夹是这个模块,而不是核心模块。 所以课程失败了。 简而言之:如何访问依赖项的资源? 我试图通过在Core的JAR Manifest Class-Path: .声明来尝试这样做Class-Path: . 。 但是在列出JSHookLoader.class.getClassLoader().getResources(“”);可用资源时JSHookLoader.class.getClassLoader().getResources(“”); (如果有任何意义,JSHookLoader在Core中),我得到: Resource: W:\programming\quackbot-hg\impl\target\classes File rebel.xml Resource: W:\programming\maven-repo\org\quackbot\core\3.5-SNAPSHOT File core-3.5-SNAPSHOT.jar File core-3.5-SNAPSHOT.pom File maven-metadata-local.xml File _maven.repositories 这当然使事情复杂化,因为我期望JAR本身在Classpath中,而不是JAR所在的目录 有什么建议么? 回到这个项目,我仍然有这个问题。 其他指南已经讨论过使用maven-assembly-plugin和远程资源插件,但这很麻烦,因为所有模块都必须包含怪物插件XML。 为什么我不简化问题:如何将依赖JAR添加到资源列表? core.jar在文件夹/ resources下有一些资源。 运行core.jar我可以在资源列表中看到/ resources。 impl.jar取决于core.jar。 运行它/资源不在资源列表中,因此造成破坏。 这应该很简单,但我该怎么做呢? 我花了好几个小时试图找出一个简单干净的方法去做,但无济于事。

是否有可能超载最终方法

在java中我们不能覆盖最终方法但是可以重载吗?

字符串被分配给List而没有编译错误

据我所知,Java中generics的主要目的之一是提供编译时类型安全性。 如果它被编译,代码将运行没有问题。 那么为什么要编译以下代码? public static void main(String[] args) { String s = getList(); } private static T getList() { return (T)new ArrayList(); } 它汇编很好。 我的类型安全编译在哪里? getList()方法与String类没有任何共同之处。

使用Apache POI生成Excel下拉列表时的限制

我正在尝试生成带有一些validation的excel文件,我已经阅读了poi dev指南来实现它。 在实现过程中,我得到了一个exception( String literals in formulas can’t be bigger than 255 characters ASCII )。 POI将所有下拉选项连接成’0’消除字符串并检查其长度并给我exception。 🙁 我正在使用最新版本的POI 3.8 beta 5。 我的代码是: try { HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet(“new sheet”); HSSFRow row = sheet.createRow((short) 0); //CellRangeAddressList from org.apache.poi.ss.util package CellRangeAddressList addressList = new CellRangeAddressList(0, 0, 0, 0); DVConstraint dvConstraint = DVConstraint.createExplicitListConstraint(getCountries()); […]