使用Ksoap2 library从WebService中获取datetime

我创建了一个Web Service,返回一个元素的数组:

<Service>
    <id>string</id>
    <description>string</description>
    <last_change_date>dateTime</last_change_date>
</Service>

我使用Ksoap2包从android设备中使用这个Web Service。当我使用下面的方法从Web Service中接收SoapObject时:

SoapObject response = (SoapObject)envelope.getResponse();

通常能用下面的代码获得response的内容

String str = (String)response.getProperty(index).toString();

这是能正常运行的。

但是,为了获得上次修改的时间(在SQL Server的数据库中从 datetime 字段中检索 dateTime类型),我就不能使用相同的方法。

所以,我现在在找一个方法在任何的日期格式 (Date 或 Calendar) 中转换dateTime,请问如何实现?

可以使用SimpleDateFormat类来解析dateTime字符串并将其转换为Java的Date对象。如果需要将Date对象转换为Calendar对象,可以使用Calendar.setTime(date)方法。


例如,假设您的dateTime字符串的格式是"yyyy-MM-dd'T'HH:mm:ss.SSS",您可以使用以下代码将其转换为Date对象:

String dateTimeString = response.getProperty("last_change_date").toString();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
Date date = dateFormat.parse(dateTimeString);

然后你可以把这个date对象转换成Calendar对象

Calendar calendar = Calendar.getInstance();
calendar.setTime(date);

请注意,在上面的示例中,我假设日期时间字符串的格式是"yyyy-MM-dd'T'HH:mm:ss.SSS"。如果您的日期时间字符串的格式不同,则需要更改SimpleDateFormat构造函数中的格式字符串。