Isuru
Isuru

Reputation: 161

Format strings in xml data in android

I'm reading data from a xml file. It works well. This is the date value. I want to cut(Delete) the time value inside date. 2014-07-03 10:05:12 It should look like this. 2014-07-03

This is my code. Could you please help me with this. Thanks in advance.

package com.eisuru.abc;

import android.os.AsyncTask;
import android.os.Bundle;
import android.app.Activity;
import android.app.ProgressDialog;
import android.view.Menu;
import android.widget.TextView;

public class MainActivity extends Activity {

    TextView tvResponse;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

        tvResponse = (TextView) findViewById(R.id.tvResponse); 
        new PostAsync().execute(); 
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }


    class PostAsync extends AsyncTask<Void, Void, Void> { 
        ProgressDialog pd; XMLHelper helper;     
        @Override 
        protected void onPreExecute() { 
            pd = ProgressDialog.show(MainActivity.this, "Exchange Rates", "Loading Exchange rates values ...", true, false);
            } 

        @Override 
        protected Void doInBackground(Void... arg0) { 
            helper = new XMLHelper(); helper.get(); 
            return null; 
            }   

        @Override 
        protected void onPostExecute(Void result) 
        { 
            StringBuilder builder = new StringBuilder(); 
            for(Exrate_values post : helper.exrates) {

                if(post.getTo_Currency().equalsIgnoreCase("SLR"))
                {


                builder.append("\n\t " + post.getDate()); 
                builder.append("\t \t \t " + post.getFrom_currency()); 
                builder.append("\t \t \t " + post.getTo_Currency()); 
                builder.append("\t \t \t " + post.getExrt_buy()); 
                builder.append("\t \t \t \t \t \t" + post.getExrt_sell()); 

                builder.append("\n"); 
                //builder.delete(13, 15);

                if(post.getFrom_currency().equalsIgnoreCase("LKR")&& post.getTo_Currency().equalsIgnoreCase("SLR"))
                {
                    builder.delete(0, builder.length());
                }
                }

                if(post.getFrom_currency().equalsIgnoreCase("EUR")&& post.getTo_Currency().equalsIgnoreCase("GBP"))
                {

                builder.append("\n\t " + post.getDate()); 
                builder.append("\t \t \t " + post.getFrom_currency()); 
                builder.append("\t \t \t " + post.getTo_Currency()); 
                builder.append("\t \t \t " + post.getExrt_buy()); 
                builder.append("\t \t \t \t \t \t" + post.getExrt_sell()); 

                builder.append("\n"); 
                }

                if(post.getFrom_currency().equalsIgnoreCase("AUD")&& post.getTo_Currency().equalsIgnoreCase("USD"))
                {

                builder.append("\n\t " + post.getDate()); 
                builder.append("\t \t \t " + post.getFrom_currency()); 
                builder.append("\t \t \t " + post.getTo_Currency()); 
                builder.append("\t \t \t " + post.getExrt_buy()); 
                builder.append("\t \t \t \t \t \t" + post.getExrt_sell()); 

                builder.append("\n"); 
                }

                if(post.getFrom_currency().equalsIgnoreCase("EUR")&& post.getTo_Currency().equalsIgnoreCase("USD"))
                {

                builder.append("\n\t " + post.getDate()); 
                builder.append("\t \t \t " + post.getFrom_currency()); 
                builder.append("\t \t \t " + post.getTo_Currency()); 
                builder.append("\t \t \t " + post.getExrt_buy()); 
                builder.append("\t \t \t \t \t \t" + post.getExrt_sell()); 

                builder.append("\n"); 
                }

                if(post.getFrom_currency().equalsIgnoreCase("EUR")&& post.getTo_Currency().equalsIgnoreCase("AUD"))
                {

                builder.append("\n\t " + post.getDate()); 
                builder.append("\t \t \t " + post.getFrom_currency()); 
                builder.append("\t \t \t " + post.getTo_Currency()); 
                builder.append("\t \t \t " + post.getExrt_buy()); 
                builder.append("\t \t \t \t \t \t" + post.getExrt_sell()); 

                builder.append("\n"); 
                }

                if(post.getFrom_currency().equalsIgnoreCase("GBP")&& post.getTo_Currency().equalsIgnoreCase("USD"))
                {

                builder.append("\n\t " + post.getDate()); 
                builder.append("\t \t \t " + post.getFrom_currency()); 
                builder.append("\t \t \t " + post.getTo_Currency()); 
                builder.append("\t \t \t " + post.getExrt_buy()); 
                builder.append("\t \t \t \t \t \t" + post.getExrt_sell()); 

                builder.append("\n"); 
                }

                if(post.getFrom_currency().equalsIgnoreCase("GBP")&& post.getTo_Currency().equalsIgnoreCase("AUD"))
                {

                builder.append("\n\t " + post.getDate()); 
                builder.append("\t \t \t " + post.getFrom_currency()); 
                builder.append("\t \t \t " + post.getTo_Currency()); 
                builder.append("\t \t \t " + post.getExrt_buy()); 
                builder.append("\t \t \t \t \t \t" + post.getExrt_sell()); 

                builder.append("\n"); 
                }

        } 
                tvResponse.setText(builder.toString()); 
                pd.dismiss(); 
                }   
        } 

}

Upvotes: 0

Views: 266

Answers (3)

Lingeshwaran
Lingeshwaran

Reputation: 579

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); 
String dateString = formatter.format(new Date(post.getDate()));

Upvotes: 0

RogueBaneling
RogueBaneling

Reputation: 4471

METHOD 1: If it's simply a string, you could get away with parsing a substring. There are many methods you can use to do this, such as:

String datetime = "2014-07-03 10:05:12";
String[] date = datetime.split(" ");

Then date[0] will be equal to "2014-07-03".

METHOD 2: Since your date will always be the same length, you can use substring.

String date = datetime.substring(0,10);

METHOD 3: You can also parse dates using SimpleDateFormat.

SimpleDateFormat fromDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat toDateFormat = new SimpleDateFormat("yyyy-MM-dd");
try { 
    String date = toDateFormat.format(fromDateFormat.parse(datetime));
} catch (ParseException e1) {
    e1.printStackTrace();
}

Upvotes: 1

Gaurav Berry
Gaurav Berry

Reputation: 137

You have to create SimpleDateFormat to parse date in required format.

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
        formatter.format(formatter.parse(post.getDate()));

This will parse Date- 2014-07-03 10:05:12 to 2014-07-03.

Upvotes: 0

Related Questions