java - 从 Web 服务响应中删除时区

标签 java .net web-services date

有没有办法从 Web 服务返回的 Java Date 对象中删除时区组件?

例如,我的开始日期为上午 12 点。我希望将其用作客户端的本地时间上午 12 点。

我认为如果肥皂消息没有时区组件,则使用本地时区。我权衡过另外两个选项,要么在客户端对日期进行算术(我真的不想这样做),要么创建一个新的日期类,将日、月和年保存为整数(我不需要时间信息)。后一个选项需要大量重构,因此如果有一种方法可以直接截断肥皂消息中的时区信息,那就更好了。

客户端是用 .NET 编写的,因此如果有一种方法可以更改客户端解释日期的方式,我认为这将实现相同的目标。

最佳答案

我相信我已经找到了解决问题的方法。我使用 @XmlJavaTypeAdapter 来更改日期类编码到 Xml 的方式。

这是我使用的 DateAdapter。

import java.text.SimpleDateFormat;
import java.util.Date;
import javax.xml.bind.annotation.adapters.XmlAdapter;

public class DateAdapter extends XmlAdapter<String, Date> {
 // the desired format
 private String pattern = "yyyy-MM-dd";

 public String marshal(Date date) throws Exception {
 return new SimpleDateFormat(pattern).format(date);
 }

 public Date unmarshal(String dateString) throws Exception {
 return new SimpleDateFormat(pattern).parse(dateString);
 }
}

我在所有想要使用“yyyy-MM-dd”日期格式的 getter 上使用了以下注释。

@XmlJavaTypeAdapter(value=DateAdapter.class, type=Date.class)

关于java - 从 Web 服务响应中删除时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5862061/

相关文章:

java - 在Java HashMap中,如何强制泛型类型成为子类

c# - 在 FlowDocument 中启用嵌入式控件

c# - 在 C# 中组织程序集(程序集结构)

asp.net - 需要从 ASP.net 在服务器中执行 *.exe

php - 使用 Zend Framework 构建 REST API 服务器的示例?

java - nextInt(int) 对于 Random 类型是未定义的

java - 删除字符串中的最后一次出现

java - PDFormX对象处理

c# - 如何将参数传递给依赖项通过 IoC 容器连接的类?

web-services - 当用户打开通行证时,如何检查用户是否单击添加或取消按钮