我使用android.text.format.DateFormat以可读格式格式化日期,如下所示:
android.text.format.DateFormat df = new android.text.format.DateFormat();
Date current = new Date();
String day = df.format("EEEE", current).toString();
例如今天,23.06.2014是星期一,但这段代码给了星期天。我测试我的应用程序的手机上的日期和时间设置正确。同样12.06.2014这个代码打印为星期五,但星期五是13 ...
答案 0 :(得分: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 :(得分:1)
我的猜测是时区。您的计算机/ JVM设置为默认时区,与您想到的时区不同。
更好的做法是始终明确指定所需的时区,而不是依赖隐式默认值。
以下是Joda-Time 2.3中的示例代码。
DateTimeZone timeZone = DateTimeZone.forID( "Europe/Paris" );
DateTime nowParis = DateTime.now( timeZone );
DateTime nowUtc = now.withZone( DateTimeZone.UTC );
答案 2 :(得分:0)
使用SimpleDateFormat
代替dateFormat
SimpleDateFormat df = new SimpleDateFormat("EEEE");
Date current = new Date();
String day = df.format(current).toString();
并导入java.text.SimpleDateFormat
答案 3 :(得分:0)
使用java日期格式。
SimpleDateFormat inFormat = new SimpleDateFormat("dd-MM-yyyy");
Date date = inFormat.parse(input);
SimpleDateFormat outFormat = new SimpleDateFormat("EEEE");
String day = outFormat.format(date);
问候。
答案 4 :(得分:0)
对不起大家,只是写了错误的一年到sqlite数据库......