Tag: 日历

是否可以创建一个将两位数年份转换为四位数年份的DateFormatter?

在我的Java应用程序中,我使用DateFormat实例来解析日期输入。 DateFormat fmt; fmt = DateFormat.getDateInstance(DateFormat.DEFAULT) // dd.MM.yyyy for de_DE 问题是用户坚持以31.12.11的forms输入日期。 不幸的是,这被解析为31.12.11 。 (ISO格式的0011-12-31 )相反,我希望解析的日期变为31.12.2011 ( 2011-12-31的ISO格式)。 我可以修改日期格式以某种方式解析输入吗?

java.util.Calendar的非标准语言环境

我们在瑞典有一位客户,使用英文软件。 所以我们设置Locale(en, SV) 。 我们确实希望Calendar类符合国家/地区设置,但它使用语言,并且在此区域设置中它采用美国设置。 因此,我现在正在寻找一种方法,让日历通过标准方式了解新的firstDayOfWeek和minimumDayinFirstWeek设置,而不是手动设置并因此硬编码。 澄清:2010年8月29日在瑞典的CW 34(也在德国和英国),但在美国,据报道为CW 36. 2010年1月1日是星期五和29.08的不同结果.2010一个星期天。 我无法将语言设置本身更改为瑞典语并使用英语后备,因为我们不支持瑞典语作为语言,但Sun / Oracle / ..确实如此,因此Swing UI将混合使用瑞典语和英语文本,这是不可接受的。 只是添加名为“sun.util.resources.CalendarData_en_SV.properties”的属性文件无法解决:它无法读取! 手动作为ResourceBundle是可能的。 不知何故,LocaleData.getCalendarData(Locale)在读取resourcfiles方面有自己的魔力,因为它的源不可用,所以我找不到它。 这里调用该方法: java.util.Calendar.setWeekCountData(Locale) 。 我还找到了java.util.spi包,但它不提供对firstDayOfWeek和minimumDaysInFirstWeek设置的访问。 也许我可以尝试拦截对resourcebundles的调用并使用默认的回退到英语,只允许对CalendarData的调用继续!? 但这听起来很糟糕。 package de.drews.i18n; import java.util.Calendar; import java.util.Locale; import java.util.ResourceBundle; public class Test { /** * @param args */ public static void main(String[] args) { // en_GB = 34 // en_US = […]

java.util.Calendar的默认时区是什么?

码 public String testDate(){ TimeZone.setDefault(TimeZone.getTimeZone(“US/Eastern”)); Calendar fromDate = Calendar.getInstance(); Date date= new Date(); System.out.println(fromDate); System.out.println(date); } 我的日历变量在调试下面的日历变量时显示cdate值2013-12-09T00:00:00.000Z和时间值1386649779590 。 Calendar cal = Calendar.getInstance(); 我在打印对象时看到的完整日历详细信息 System.out.println(cal); 安慰 java.util.GregorianCalendar[time=1386649779590,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id=”US/Eastern”,offset=-18000000,dstSavings=3600000,useDaylight=true,transitions=235,lastRule=java.util.SimpleTimeZone[id=US/Eastern,offset=-18000000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=3,startMonth=2,startDay=8,startDayOfWeek=1,startTime=7200000,startTimeMode=0,endMode=3,endMonth=10,endDay=1,endDayOfWeek=1,endTime=7200000,endTimeMode=0]],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2013,MONTH=11,WEEK_OF_YEAR=50,WEEK_OF_MONTH=2,DAY_OF_MONTH=9,DAY_OF_YEAR=343,DAY_OF_WEEK=2,DAY_OF_WEEK_IN_MONTH=2,AM_PM=1,HOUR=11,HOUR_OF_DAY=23,MINUTE=29,SECOND=39,MILLISECOND=590,ZONE_OFFSET=-18000000,DST_OFFSET=0] 虽然我的java.util.date变量显示日期为Mon Dec 09 07:37:50 EST 2013 ,同时调试日期变量 Date date= new Date(); 我设置的默认timezone是在程序启动时指定的EST TimeZone.setDefault(TimeZone.getTimeZone(“US/Eastern”)); 我正在从timezone IST工作 。 我的问题是 为什么Calendar cal和Date()的Date()不同?

有没有比这更容易的方式开始当前时间?

我基本上想要获得零或开始时间的一天。 def today = Calendar.instance today.set(Calendar.HOUR_OF_DAY, 0) today.set(Calendar.MINUTE, 0) today.set(Calendar.SECOND, 0) println today // Mon Mar 15 00:00:00 SGT 2010

Java计算一年中的天数

在任何本机Java类中是否有一个方法来计算特定年份中/将会有多少天? 如同,是闰年 (366天)还是正常年份(365天)? 或者我需要自己写吗? 我正在计算两个日期之间的天数,例如,我生日前剩余的天数。 我想考虑闰年2月29日。 除了29日,我完成了所有工作。

如果我有一天的特定日期,我如何获得前一周的那一天的日期?

从@Basil Bourque那里获得最新答案的答案 例如,如果我有一个“日期”变量“date1”,其值为(dd / mm / yyy)03/07/2011,这是一个星期日。 如何获取上一个星期日“date2”的“日期”? 这将是值(年/月/日)26/06/2011。 有没有一种简单的方法,例如: 伪代码: Date date1 = (03/07/2011); Date date2 = date1.subtractNumberOfDays(7);

获取月份的最后一天

为了获得月份的最后日期,我已经写了这个函数 /** * @param month integer value of month * @param year integer value of month * @return last day of month in MM/dd/YYYY format */ private static String getDate(int month, int year) { Calendar calendar = Calendar.getInstance(); // passing month-1 because 0–>jan, 1–>feb… 11–>dec calendar.set(year, month – 1, 1); calendar.set(Calendar.DATE, calendar.getActualMaximum(Calendar.DATE)); Date date = […]

检查日历日期是否是星期日

我想弄清楚如何让我的程序计算一周内的星期日数。 我试过以下的事情: if (date.DAY_OF_WEEK == date.SUNDAY) { System.out.println(“Sunday!”); } 但它似乎没有用? 当我尝试System.out.Println the date.DAY_OF_WEEK我得到: 7 有谁知道如何检查当前的日历日期是否是星期日? 更新更多信息 所有日期的日期.DAY_OF_WEEK是一个Calendar对象! 我确保将Calendar对象date设置为星期日 当我尝试运行date.DAY_OF_MONTH即使它设置为星期日这一天,我获得7的系统输出也是我的回报。 第二次更新到亚历克斯 这或多或少是我的代码 Calendar startDate = Calendar.getInstance(); startDate.set(2012, 12, 02); if (startDate.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) { System.out.println(“true”); }else { System.out.println(“FALSE”); }

我怎么能用java.util.Calendar返回伊斯兰历法?

我知道java.util.Calendar类方法getInstance()返回一个GregorianCalendar但我怎么能得到一个伊斯兰历法?

比较忽略毫秒的日期?

有没有办法比较两个日历对象,但忽略毫秒? 我编写了一个比较两个日历对象的测试用例,但是有一个问题。 虽然所有日,月,分和小时都匹配,但毫秒不匹配。 我在获得实际日期之前得到了预期的日期: /** * @return */ private Calendar getExpectedOneMonthDateFromCurrentDate() { Calendar expectedOneMonth = Calendar.getInstance(); expectedOneMonth.add(Calendar.MONTH, -1); return expectedOneMonth; } assertEquals(getExpectedOneMonthDateFromCurrentDate(), DateRange.LAST_ONE_MONTH.getToDate());