2014-06-23 86 views
0

我用android.text.format.DateFormat可讀格式來格式化日期是這樣的:今天android.text.format.DateFormat「EEEE」給出錯誤的日期名

android.text.format.DateFormat df = new android.text.format.DateFormat(); 
Date current = new Date(); 
String day = df.format("EEEE", current).toString(); 

例如,2014年6月23日是星期一,但這段代碼給星期天。手機上測試我的應用程序的日期和時間設置正確。此外12.06.2014此代碼打印週五,但週五的13 ...

+0

請告訴我們的代碼你的相關部分。此外,我會優先使用日曆而不是日期,因爲日期的大多數方法已被棄用 – Opiatefuchs

回答

0

對不起大家,只是寫錯誤年sqllite數據庫...

0

使用SimpleDateFormat而不是dateFormat

SimpleDateFormat df = new SimpleDateFormat("EEEE"); 
    Date current = new Date(); 
    String day = df.format(current).toString(); 

,並導入java.text.SimpleDateFormat

0

使用java日期格式。

SimpleDateFormat inFormat = new SimpleDateFormat("dd-MM-yyyy"); 
Date date = inFormat.parse(input); 
SimpleDateFormat outFormat = new SimpleDateFormat("EEEE"); 
String day = outFormat.format(date); 

問候。

1

以下是您可以選擇的方法。

DateFormat df = new SimpleDateFormat("EEE, d MMM yyyy, HH:mm"); 
String date = df.format(Calendar.getInstance().getTime()); 

Log.d("Date->",date); 

//Specifically if you want to print day 
DateFormat df = new SimpleDateFormat("EEE"); 
     String date = df.format(Calendar.getInstance().getTime()); 

     Log.d("------------Date->",date); 

DateFormat df = new SimpleDateFormat("EEE"); 
String day= df.format(Calendar.getInstance().getTime()); 

     Log.d("------------Day->",day); 

儘管你可以有DateFormat的圖案,比如:

"yyyy.MM.dd G 'at' HH:mm:ss z" ----> 2001.07.04 AD at 12:08:56 PDT 
"hh 'o''clock' a, zzzz" -----------> 12 o'clock PM, Pacific Daylight Time 
"EEE, d MMM yyyy HH:mm:ss Z"-------> Wed, 4 Jul 2001 12:08:56 -0700 
"yyyy-MM-dd'T'HH:mm:ss.SSSZ"-------> 2001-07-04T12:08:56.235-0700 
"yyMMddHHmmssZ"--------------------> 010704120856-0700 
"K:mm a, z" -----------------------> 0:08 PM, PDT 
"h:mm a" --------------------------> 12:08 PM 
"EEE, MMM d, ''yy" ----------------> Wed, Jul 4, '01 

欲瞭解更多您可以參考 - >Java Doc

1

時區

我的猜測是時區。您的計算機/ JVM設置爲與您心目中的時區不同的默認時區。

更好的做法是始終明確指定所需的時區,而不是依賴隱式默認值。

Joda-Time

以下是Joda-Time 2.3中的示例代碼。

DateTimeZone timeZone = DateTimeZone.forID("Europe/Paris"); 
DateTime nowParis = DateTime.now(timeZone); 
DateTime nowUtc = now.withZone(DateTimeZone.UTC); 
相關問題