2009-12-06 15 views
234

Ho appena creato l'app BB di esempio, che può consentire di scegliere la data.Come convertire/eseguire il cast da long a String?

DateField curDateFld = new DateField("Choose Date: ", 
    System.currentTimeMillis(), DateField.DATE | DateField.FIELD_LEFT); 

Dopo aver scelto la data, ho bisogno di convertire così a lungo il valore di stringa, in modo che possa facilmente memorizzare il valore della data in qualche luogo nel database. Sono nuovo nello sviluppo di Java e Blackberry.

long date = curDateFld.getDate(); 

Come devo convertire questo valore lungo in stringa? Anche io voglio riconvertire in long da String. Penso che per quello posso usare long l = Long.parseLong("myStr");?

risposta

352

Vedere il reference documentation for the String class: String s = String.valueOf(date);

Se il lungo potrebbe essere nullo e non si desidera ottenere un 4-lettera "null" stringa, si potrebbe utilizzare Objects.toString, come: String s = Objects.toString(date, null);


EDIT :

Lo si inverte utilizzando Long l = Long.valueOf(s); ma in questa direzione è necessario catturare NumberFormatException

+12

Si noti che 'Long.valueOf (String) 'restituisce un' Long'. Se vuoi un 'long', usa' Long.parseLong (String) '. –

+1

Qual è il differenziale tra questo modo, o solo concat in questo modo: ("" + longAttr)? –

+4

@MarceloAssis .. concat è circa 2 volte più lento. Se le prestazioni sono importanti nell'applicazione dell'utente. –

18

molto semplice, basta concatenare il lungo a una stringa.

long date = curDateFld.getDate(); 
String str = ""+date; 
172
String strLong = Long.toString(longNumber); 

semplice e funziona bene :-)

+0

Per la conversione di tipo generale al di fuori del contesto 'Date' questa è la pratica consigliata per convertire' Long' su 'STRING'. – KomodoDave

+3

Funziona bene con il tipo primitivo (lungo), ma può generare NPE con Tipo oggetto (lungo), anche con autoboxing. –

+0

Semplice è buono. – HoldOffHunger

9

1.

long date = curDateFld.getDate(); 
//convert long to string 
String str = String.valueOf(date); 

//convert string to long 
date = Long.valueOf(str); 

2.

//convert long to string just concat long with empty string 
String str = ""+date; 
//convert string to long 

date = Long.valueOf(str); 
3
String logStringVal= date+""; 

grado di convertire il tempo in oggetto stringa, scorciatoia fresco per la conversione in stringa ... ma l'uso di String.valueOf(date); è consigliabile

+0

Ho pensato che "String.valueOf" fosse l'approccio preferito, ma ho notato che basta chiamare 'Long.toString', quindi forse è il modo più semplice. – gMale

65

Il seguente dovrebbe funzionare:

long myLong = 1234567890123L; 
String myString = Long.toString(myLong); 
+0

C'è qualche differenza con 'String.valueOf (myLong)'? – membersound

+1

Non sono sicuro, ma dovrebbero essere simili. –

+0

@membersound sono gli stessi. Fondamentalmente String.valueOf (long) chiama Long.toString() – Nero

1
String longString = new String(""+long); 

o

String longString = new Long(datelong).toString(); 
+0

È buona pratica su Stack Overflow aggiungere una spiegazione sul motivo per cui la soluzione dovrebbe funzionare. Per maggiori informazioni leggi [Come rispondere] (http://stackoverflow.com/help/how-to-answer). –

+0

Questo non fornisce una risposta alla domanda. Per criticare o richiedere chiarimenti da un autore, lascia un commento sotto il loro post. - [Dalla recensione] (/ recensione/post di bassa qualità/14830916) –

+2

@KrupalShah Una risposta solo in codice potrebbe non essere buona, ma è comunque una risposta. Ti consiglierei questo post sul LQPRQ: [Stai sbagliando: una richiesta di sanità mentale nella coda Messaggi di bassa qualità] (http://meta.stackoverflow.com/questions/287563/youre-doing-it- male-a-richiesta-per-sanity-in-the-bassa qualità-messaggi-coda) – FelixSFD

Problemi correlati