相关疑难解决方法(0)

为什么2010年12月31日将作为一年中的一周返回1?

例如:

Calendar c = Calendar.getInstance();
DateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
c.setTime( sdf.parse("31/12/2010"));
out.println( c.get( Calendar.WEEK_OF_YEAR ) );  
Run Code Online (Sandbox Code Playgroud)

打印1

Joda时间也是如此.

:)

java calendar jodatime week-number

26
推荐指数
3
解决办法
2万
查看次数

如何检查是周六/周日?

此代码的作用是打印当周从星期一到星期五的日期.它工作正常,但我想问别的:如果今天是星期六或星期日,我希望它显示下周.我怎么做?

到目前为止,这是我的工作代码(感谢StackOverflow !!):

// Get calendar set to current date and time
Calendar c = Calendar.getInstance();

// Set the calendar to monday of the current week
c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);

// Print dates of the current week starting on Monday to Friday
DateFormat df = new SimpleDateFormat("EEE dd/MM/yyyy");
for (int i = 0; i <= 4; i++) {
    System.out.println(df.format(c.getTime()));
    c.add(Calendar.DATE, 1);
}
Run Code Online (Sandbox Code Playgroud)

非常感谢!我真的很感激,因为我一直在寻找解决方案......

java calendar

26
推荐指数
2
解决办法
5万
查看次数

Java时间戳 - 添加五分钟

寻找一些我正在研究的Java代码的帮助,我有以下代码打印出日期和时间:

  Date dNow = new Date( ); // Instantiate a Date object
  SimpleDateFormat ft = new SimpleDateFormat ("MMM d, yyyy k:mm:ss");  // Time at server
Run Code Online (Sandbox Code Playgroud)

结果:2013年3月15日10:19:48

我正在创建一个javascript计数器,从这个数字开始工作,从5分钟开始倒计时.所以我需要在Java中添加5分钟到当前日期时间.

因此,如果当前日期时间是:2013年3月15日10:19:48

我需要在Java上添加5分钟,以便打印出来:2013年3月15日10:24:48

有任何想法吗?

java

26
推荐指数
5
解决办法
7万
查看次数

在Java中,如何使用系统的默认语言环境(语言)获取星期几(星期日,星期一,...,星期六)的字符串

最简单的方法:

String[] namesOfDays = new String[7] {
    "SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"
};
Run Code Online (Sandbox Code Playgroud)

此方法不使用Locale.因此,如果系统的语言不是英语,则此方法无法正常工作.

使用Joda时间,我们可以这样做:

String[] namesOfDays = new String[7];
LocalDate now = new LocalDate();

for (int i=0; i<7; i++) {
    /* DateTimeConstants.MONDAY = 1, TUESDAY = 2, ..., SUNDAY = 7 */
    namesOfDays[i] = now.withDayOfWeek((DateTimeConstants.SUNDAY + i - 1) % 7 + 1)
        .dayOfWeek().getAsShortText();
}
Run Code Online (Sandbox Code Playgroud)

但是,此方法使用今天的日期和日历计算,这对于最终目的而言是无用的.而且,它有点复杂.

是否有一个简单的方法来得到这样的字符串"Sun","Mon",...,"Sat"用系统的默认语言环境?

java android calendar jodatime dayofweek

26
推荐指数
2
解决办法
3万
查看次数

比较Java中的两个日期

我需要比较java中的两个日期.我正在使用这样的代码:

Date questionDate = question.getStartDate();
Date today = new Date();

if(today.equals(questionDate)){
    System.out.println("Both are equals");
}
Run Code Online (Sandbox Code Playgroud)

这不起作用.变量的内容如下:

  • questionDate 包含 2010-06-30 00:31:40.0
  • today 包含 Wed Jun 30 01:41:25 IST 2010

我该如何解决这个问题?

java compare date

25
推荐指数
5
解决办法
10万
查看次数

如何使用Java解析RFC 3339日期时间?

我正在尝试解析从HTML5 datetime输入字段返回的值作为值.在Opera中试一试看一个例子.返回的日期如下:2011-05-03T11:58:01Z.

我想将其解析为Java Date或Calendar Object.

理想情况下,解决方案应该包含以下内容:

  • 没有外部库(罐子)
  • 处理所有可接受的RFC 3339格式
  • 应该能够轻松验证字符串以查看它是否是有效的RFC 3339日期

java html5 datetime rfc3339 date-parsing

25
推荐指数
3
解决办法
2万
查看次数

检索当前周的周一日期

我们有一个实用工具,将在周一至周五之间的任何一天运行.它将更新内容管理工具中的一些文件.与该文件关联的最后修改日期应该是该周的星期一日期.我编写了以下程序来检索当前周的星期一日期.但我仍然不确定这是否适用于所有情况.有没有人有更好的解决方案?

Calendar c = Calendar.getInstance();
c.setTime(new Date());
System.out.println(c.get(Calendar.DAY_OF_MONTH));
System.out.println(c.get(Calendar.DAY_OF_WEEK));
int mondayNo = c.get(Calendar.DAY_OF_MONTH)-c.get(Calendar.DAY_OF_WEEK)+2;
c.set(Calendar.DAY_OF_MONTH,mondayNo);
System.out.println("Date "+c.getTime());
Run Code Online (Sandbox Code Playgroud)

java calendar date dayofweek

25
推荐指数
3
解决办法
5万
查看次数

获得当前年份和月份会产生奇怪的结果

我正在开发一个与Android相关的学习项目.我想通过使用下面的代码来获取当前年份和月份,但它不适用于我.

GregorianCalendar gc = new GregorianCalendar();
gc.YEAR // returning 1       
gc.MONTH // returning 2

Calendar c = Calendar.getInstance();
c.YEAR // returning 1       
c.MONTH // returning 2
Run Code Online (Sandbox Code Playgroud)

有人能帮我吗?难道我做错了什么?请原谅我,我是java开发的新手.谢谢.

java android date gregorian-calendar

24
推荐指数
3
解决办法
5万
查看次数

解析日期时的NumberFormatException

有一个创建仅限时间的Date对象的函数.(为什么这是必需的是一个长篇故事,在这种情况下是无关紧要的,但我需要与XML世界中的一些东西进行比较,其中TIME(即仅时间)是一个有效的概念).

private static final SimpleDateFormat DF_TIMEONLY = new SimpleDateFormat("HH:mm:ss.SSSZ");    

public static Date getCurrentTimeOnly() {

    String onlyTimeStr = DF_TIMEONLY.format(new Date());  // line #5
    Date  onlyTimeDt = null;
    try {
        onlyTimeDt = DF_TIMEONLY.parse(onlyTimeStr);  // line #8
    } catch (ParseException ex) { 
        // can never happen (you would think!)
    }
    return onlyTimeDt;
}
Run Code Online (Sandbox Code Playgroud)

可能至少有几种方法可以在Java中创建一个仅限日期的日期(或者更确切地说,日期部分是1970-01-01),但我的问题实际上并非如此.

我的问题是这段代码在生产运行很长时间后开始在#8行上随机抛出NumberFormatException.从技术上讲,我会说这应该是不可能的,对吧?

以下是来自上面一段代码的随机NumberFormatExceptions的摘录:

java.lang.NumberFormatException: multiple points
java.lang.NumberFormatException: For input string: ".11331133EE22"
java.lang.NumberFormatException: For input string: "880044E.3880044"
java.lang.NumberFormatException: For input string: "880044E.3880044E3"
Run Code Online (Sandbox Code Playgroud)

首先,我希望我们能够正式认为这应该是不可能的吗?代码使用相同的format(DF_TIMEONLY)作为输出然后输入.如果你不同意它应该是不可能的,请告诉我.

我无法在独立环境中重新生成问题.当JVM运行很长时间(> 1周)时,问题似乎就出现了.我无法找到问题的模式,即夏令时/冬令时,上午/下午等.错误是零星的,这意味着一分钟它将抛出NumberFormatException,下一分钟它将运行正常. …

java date

24
推荐指数
1
解决办法
1万
查看次数

是否有一个很好的Java日期解析器?

有没有人知道不同语言/区域设置的好日期解析器.Java(SimpleDateFormat)的内置解析器非常严格.它应该用当前日期完成缺失的部分.

例如

  • 如果我不输入年份(仅限日期和月份),则应使用当前年份.
  • 如果年份是08那么它不应该解析0008因为当前年份模式有4位数.

编辑:我想解析用户的输入.例如,如果用户的区域设置日期格式为"dd.mm.yyyy",并且用户仅键入"12.11".那么解析器应该接受它作为值为"12.11.2008"的有效日期.目标是良好的可用性.

java parsing date

23
推荐指数
3
解决办法
1万
查看次数