如何编辑日期以不同的格式显示?

时间:2014-06-15 21:17:07

标签: java android date

我将日期时间作为文本以SQLite数据库中 dd-MM-yyyy hh:mm:ss 的格式存储。我想将它转换为相同格式的日期对象。我只能将其转换为 Mon Jun 16 01:35:38 GMT + 05:30 的格式。如何将其作为所需格式的Date对象?这里TSArray[]包含字符串格式的日期:

int dateArraySize=TSArray.length;
Date dateArray[]=new Date[TSArray.length];
SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss");

for (int i=0;i<TSArray.length;i++) { 
    try { 
        //converting String date to Date 
        Date result=df.parse(TSArray[i]);
        dateArray[i]= result;
    } catch (ParseException e) {
        // TODO Auto-generated catch block 
        e.printStackTrace();
    } 

2 个答案:

答案 0 :(得分:0)

Java中的

Date对象只是代表一个时刻(具体地说,是epoch之前或之后的毫秒数) - 它们不存储有关它们应如何显示的任何信息,也不存储他们应该。格式化日期纯粹是为了显示目的,并且是DateFormat类层次结构的关注,并且不应该在显示时间之前完成(除非你有一个令人信服的理由比这更早做,但我可以'想到一个。)

可以说没有什么可以阻止你在DateFormat旁边发送Date个对象,但如果你首先正确地将代码国际化,那么你永远不需要这样做。

不应执行此操作的一个原因是区域日期格式的差异。如果您向我提供了日期03/07/2014,我会将其视为2014年7月的3 rd ,因为在英国我们将日期格式设为DD/MM/YYYY。向美国某人提出同一日期,他们会将其视为2014年3月 th ,因为美国的日期通常为MM/DD/YYYY

数据库和服务器不需要知道有关客户端的任何区域设置信息,它们应该在适当的时候提供数据请求,并让客户端( 知道区域设置信息)适当地格式化数据。

<强> TL; DR

您不能,因为Java Date对象不存储显示格式规则。


当您使用AChartEngine时,您应该能够通过使用TimeChart并通过调用图表的setDateFormat(String)方法传递日期格式掩码来实现您所追求的目标。

答案 1 :(得分:-1)

java.sql.date中的数据库返回值n java默认使用的是java.util.date。 Java.util.date转换为java.sql.Date,如下面给出的..

Calendar cal = Calendar.getInstance();      
Java.sql.Date sqlDate = new java.sql.Date(cal.getTimeInMillis());