来自字符串的 Java 星期几
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/7936264/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-30 22:05:25 来源:igfitidea点击:
Java day of the week from string
提问by out_sid3r
I have this simple code:
我有这个简单的代码:
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date date = format.parse("2011-10-29");
calendar.setTime(date);
Log.d("Debug","Day of the week = "+(calendar.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY));
The 29th of October is a Saturday so why do I get false?
10 月 29 日是星期六,为什么我会出错?
采纳答案by Craigy
Here is an example of how this could happen...
这是一个如何发生这种情况的示例......
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date date = null;
try {
date = format.parse("2011-10-29");
} catch (ParseException e) {
e.printStackTrace();
}
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
calendar.setTime(date);
System.out.println("Day of the week = "
+ (calendar.get(Calendar.DAY_OF_WEEK)));
System.out.println("Saturday? "
+ (calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY));
try {
date = format.parse("2011-10-29");
} catch (ParseException e) {
e.printStackTrace();
}
calendar = Calendar.getInstance(TimeZone.getTimeZone("PST"));
calendar.setTime(date);
System.out.println("Day of the week = "
+ (calendar.get(Calendar.DAY_OF_WEEK)));
System.out.println("Saturday? "
+ (calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY));
which outputs
哪个输出
Day of the week = 7
Saturday? true
Day of the week = 6
Saturday? false
so yes, depending on what time zone you are in it will or will not be Saturday.
所以是的,取决于您所在的时区,周六会是或不会是周六。
回答by Kaleb Brasee
Getting true with the following code:
使用以下代码实现:
try {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date date = format.parse("2011-10-29");
Calendar cal = GregorianCalendar.getInstance();
cal.setTime(date);
System.out.println(cal.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY);
}
catch(Exception e) {
e.printStackTrace();
}
Maybe a locale setting?
也许是语言环境设置?