在Java中,在字符串的特定位置添加特定字符
我将日期值以20121224格式存储在SQLite数据库中,这样我就可以轻松地按日期对数据库进行排序。我的问题是,在使用java代码从数据库中提取日期后,如何才能从20121224格式到2012/12/24格式获取日期。您可以这样做在Java中,在字符串的特定位置添加特定字符,java,android,string,sqlite,Java,Android,String,Sqlite,我将日期值以20121224格式存储在SQLite数据库中,这样我就可以轻松地按日期对数据库进行排序。我的问题是,在使用java代码从数据库中提取日期后,如何才能从20121224格式到2012/12/24格式获取日期。您可以这样做 import java.text.SimpleDateFormat; import java.util.Date; public class Test003 { public static void main(String[] args) throws E
import java.text.SimpleDateFormat;
import java.util.Date;
public class Test003 {
public static void main(String[] args) throws Exception {
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyMMdd");
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy/MM/dd");
String s = "20121224";
Date dt = sdf1.parse(s);
System.out.println(sdf2.format(dt));
}
}
希望这能有所帮助。在Java中,字符串是不可变的,因此您不能修改从数据库返回的字符串;你必须做一个新的。最简单的方法是,如果您的日期保证为yyyyMMdd格式,也就是说,您不需要将一月存储为01,您只需要在另一端显示另一个字符串:
StringBuilder date = new StringBuilder();
date.append(dateStr.substring(0,4));
date.append("/");
date.append(dateStr.substring(4,6));
date.append("/");
date.append(dateStr.substring(6,8));
// use date.toString() wherever you need it
不过,我建议您调查一下。这些是常见的格式,允许您以更传统、更方便的方式使用Java内置的Date和DateFormat类
我看到有人在我键入此内容时击败了我提交答案…该建议将起作用,但它让您构建2个SimpleDataFormat对象,这不一定是最有效的方式。取决于您执行此操作的频率。您可以使用strftime函数
语法:
strftime(timestring, modifiers...)
这将返回根据指定格式字符串格式化的日期
Example:
SELECT strftime('%d-%m-%Y') from TABLE_NAME;
Output:
24-11-2013
您可以找到所有的格式化程序
Example:
SELECT strftime('%d-%m-%Y') from TABLE_NAME;
Output:
24-11-2013