我的日期在sqlite中保存为字符串格式为" EEE MMM dd HH:mm:ss zzz yyyy"。用这种方式保存是非常重要的。
但是,现在我需要从数据库中获取保存的数据,同时按照从最新版本开始的日期对它们进行排序。
RequiredInterface requiredInterface = (RequiredInterface)Class.forName("com.sample.TestJarLoadingClass", true, new ByteClassLoader(ByteClassLoader.class.getClassLoader(), Files.readAllBytes(path))).newInstance();
System.out.println(requiredInterface.method());
它根本不起作用,我尝试使用所有其他SQLite date function 但无济于事。我很确定它与日期格式有关。以前有人处理过吗? (PS,它不是重复我已经在stackoverflow上经历了类似的问题)
答案 0 :(得分:1)
您应始终在Android设备上的SQLite中将日期保存为UTC时间戳(INTEGER
)。通过这种方式,您可以轻松地对它们进行比较和排序,并且使用的存储空间更少。
然后,没有什么可以阻止您使用SimpleDateFormat
将日期格式化回原始格式。
如果保留时区很重要(假设您希望日期始终根据特定国家/地区的时区进行格式化,而不是使用默认语言环境),则可以将UTC偏移量保存为时间戳旁边的单独列。
答案 1 :(得分:0)
如果您想显示日期时间并希望能够在不进行额外处理的情况下对数据进行排序,您可以使用两列TEXT和INTEGER,您可以在TEXT列中存储格式化日期,在INTEGER列中存储时间,并让您拥有数据基于INTEGER数据排序。这样你就可以实现这两点。