java dataformat 的疑问

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java dataformat 的疑问相关的知识,希望对你有一定的参考价值。

代码如下:
<%@ page language="java" import="java.text.*,java.util.*" pageEncoding="GBK"%>
<%@ page import="kira.*" %>
<%
//String textDate = request.getParameter("2009-5-27");
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date fDate1 = df.parse("2009-05-27");
out.print(fDate1);
%>
<html>
</html>

为何不是按format格式输出
而是输出的:Wed May 27 00:00:00 CST 2009 呢

参考技术A 1.Date 的toString()方法描述如下
toString
public String toString()把此 Date 对象转换为以下形式的 String:
dow mon dd hh:mm:ss zzz yyyy其中:
dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat)。
mon 是月份 (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec)。
dd 是一月中的某一天(01 至 31),显示为两位十进制数。
hh 是一天中的小时(00 至 23),显示为两位十进制数。
mm 是小时中的分钟(00 至 59),显示为两位十进制数。
ss 是分钟中的秒数(00 至 61),显示为两位十进制数。
zzz 是时区(并可以反映夏令时)。标准时区缩写包括方法 parse 识别的时区缩写。如果不提供时区信息,则 zzz 为空,即根本不包括任何字符。
yyyy 是年份,显示为 4 位十进制数。

覆盖:
类 Object 中的 toString
返回:
此日期的字符串表示形式。
另请参见:
toLocaleString(), toGMTString()
所以输出的结果不是你想要的
2.建议在输出日期的时候格式化
out.print(df.format(fDate1));
参考技术B 你格式化时间的时候错了~~
你应该去仔细看看api
我先给你一个简单的示例,你看看就明白了:
String time=new SimpleDateFormat("yyyy/MM/dd/hh/mm/ss").format(new Date());本回答被提问者采纳
参考技术C String str = df.format(new Date(System.currentTimeMillis()));
out.print(str);
参考技术D out.print(fDate1.toLocaleString());//改这里

MessagePack Java Jackson Dataformat - POJO 的序列化和反序列化

在本测试代码中,我们定义了一个 POJO 类,名字为 MessageData,你可以访问下面的链接找到有关这个类的定义。

https://github.com/cwiki-us-demo/serialize-deserialize-demo-java/blob/master/src/main/java/com/insight/demo/serialize/model/msgpack/MessageData.java

POJO 的序列化和反序列化

你仅仅需要对 MessagePackFactory 进行实例化,然后传递参数到 com.fasterxml.jackson.databind.ObjectMapper 的构造方法。

然后你就可以用与 jackson-databind 相同的方法使用 MessagePack 格式化数据。

本测试方法,可以在 https://github.com/cwiki-us-demo/serialize-deserialize-demo-java/blob/master/src/test/java/com/insight/demo/serialize/MessagePackSerializer.java 中找到。

/**
 * SerializationPOJO
 */
@Test
public void testMessagePackSerializationPOJO() 
 
    byte[] bytes = new byte[0];
    String uuid = UUID.randomUUID().toString();
 
    // Instantiate ObjectMapper for MessagePack
    ObjectMapper objectMapper = new ObjectMapper(new MessagePackFactory());
 
 
    MessageData pojo = new MessageData();
    pojo.setUuid(uuid);
    pojo.setName("CWIKI.US");
 
 
    try 
        // Serialize a Java object to byte array
        bytes = objectMapper.writeValueAsBytes(pojo);
        logger.debug("Length of Bytes: []", bytes.length);
 
        // Deserialize the byte array to a Java object
        MessageData deserialized = objectMapper.readValue(bytes, MessageData.class);
        logger.debug("Deserialized Name: []", deserialized.name);
 
        assertEquals("CWIKI.US", deserialized.name);
 
     catch (JsonProcessingException ex) 
        logger.error("Serialize Error", ex);
     catch (IOException e) 
        e.printStackTrace();
    
 

https://www.cwiki.us/display/Serialization/MessagePack+Jackson+Dataformat

 

以上是关于java dataformat 的疑问的主要内容,如果未能解决你的问题,请参考以下文章

使用 jackson-dataformat-xml 库将 XML 中的空标签转换为 java 属性

MessagePack Java Jackson Dataformat - 安装

MessagePack Java Jackson Dataformat - POJO 的序列化和反序列化

MessagePack Java Jackson Dataformat 不使用 str8 数据类型的序列化

MessagePack Java Jackson Dataformat - 列表(List)的序列化和反序列化

MessagePack Java Jackson Dataformat 在 Map 中不使用 String 为 Key 的序列化