标签: simpledateformat

使用SimpleDateFormat解析结果的奇怪日期和时间

使用SimpleDateFormat解析ISO8601的日期和时间时,我遇到了一个奇怪的问题.相关代码是:

public class DateHelper
{
    private static SimpleDateFormat iso8601formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
    public static Date parseISO8601(String date) throws ParseException
    {
        Date result = iso8601formatter.parse(date);
        return result;
    }
}
Run Code Online (Sandbox Code Playgroud)

对于输入我给它一个字符串

2010-09-06T15:30:00+02:00
Run Code Online (Sandbox Code Playgroud)

作为回报,我得到一个Date对象,日期设置为2010年1月6日,时间为13:30,时区为GMT + 00:00.

编辑:我也尝试使用"2010-09-06T15:30:00 + 0200",结果相同.

令人困惑的是,日期设置部分正确,只是月份设置错误.

问题显示在Android 1.6和Android 2.2上.

我该如何解决?

java parsing android date simpledateformat

5
推荐指数
1
解决办法
8482
查看次数

关于java SimpleDateFormat的简单问题

这可能是一个愚蠢的问题,但我不懂java日期函数.这是一些代码:

SimpleDateFormat sdf = new SimpleDateFormat("hh:mm");
Date s = sdf.parse(var);
Calendar scal = java.util.GregorianCalendar.getInstance();
scal.setTime(s);   
Log.w("Time: ", Long.toString(s.getTime()));
Run Code Online (Sandbox Code Playgroud)

如果var ="10:00",我得到"64800000".

如果var ="11:00",我得到"68400000".

如果var ="12:00",我得到"28800000".

如果var ="13:00",我得到"75600000".

如果var ="14:00",我得到"79200000".

如果var ="00:00",我得到"28800000".

什么是12:00?为什么,当var = 12:00时,我得到与00:00时相同的结果?所有其他结果似乎都是正确的.我显然不理解java日期函数,但我似乎无法在任何地方找到任何解释.这搞砸了我的时间跨度计算器.

java android date simpledateformat

5
推荐指数
1
解决办法
3760
查看次数

JXDatePicker使用SimpleDateFormat将dd.MM.yy格式化为当前世纪的dd.MM.yyyy

正如我已经解释过的那样,当用户在JXDatePicker中编辑日期时,他可以选择,天气他再次以相同的格式输入它,默认情况下是dd.MM.yyyy或者只是dd.MM.yy .当他使用短形式时,我希望Picker选择当前的世纪.

例:

27.01.2012 edited to 27.01.10 should result in 27.01.2010
Run Code Online (Sandbox Code Playgroud)

以及:

27.01.2012 edited to 27.01.2010 should also result in 27.01.2010
Run Code Online (Sandbox Code Playgroud)

默认情况下,JXDatePicker以下列方式处理它:

27.01.2012 edited to 27.01.10 results in 27.01.0010
Run Code Online (Sandbox Code Playgroud)

这不是我希望它工作的方式.经过一些简短的研究后,我在SimpleDateFormat中找到了以下方法

/**
 * Sets the 100-year period 2-digit years will be interpreted as being in
 * to begin on the date the user specifies.
 *
 * @param startDate During parsing, two digit years will be placed in the range
 * <code>startDate</code> to <code>startDate + 100 years</code>.
 */
public void set2DigitYearStart(Date startDate) …
Run Code Online (Sandbox Code Playgroud)

java regex swing swingx simpledateformat

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

如何在java的SimpleDateFormat中转义单引号

我有这样的日期输入日期:{ts'2012-08-13 02:30:01'}

我相信我可以用单引号来逃避无效部分,但我在无效部分中有一个单引号.我怎么逃避?我尝试了几种模式,但它不起作用.

谢谢,

java date simpledateformat

5
推荐指数
1
解决办法
4236
查看次数

如何从String获取Date对象

DateFormat formatter = new SimpleDateFormat("MM/dd/yyyy' 'HH:mm:ss");
Date d = (Date)formatter.parse(dateTime);
System.out.println("date in controller "+d);
Run Code Online (Sandbox Code Playgroud)

我把输出作为

日期在控制器Mon Dec 31 16:04:57 IST 2012

请建议一种以MM/dd/yyyy HH:mm:ss格式输出日期的方法.需要以日期格式输出而不是字符串,以便将输出存储datetime在mysql db 中的字段中

java datetime date simpledateformat

5
推荐指数
1
解决办法
4688
查看次数

“ EEEE,MMMM d,yyyy'at'HH:mm”

我正在尝试从字符串转换为日期。例如:2013年9月4日,星期三,下午5:07

我首先将其转换为:2013年9月4日,星期三,5:07 PM

并使用以下代码:

SimpleDateFormat format = new SimpleDateFormat("EEEE, MMMM d, yyyy 'at' hh:mm a");
Run Code Online (Sandbox Code Playgroud)

但是我总是得到不可解析的日期异常。

任何帮助表示赞赏!

java simpledateformat

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

解析日期字符串的问题

我正在尝试将以下字符串解析为Date对象:

2013-12-26T01:00:56.664Z
Run Code Online (Sandbox Code Playgroud)

使用这个SimpleDateFormat:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
Run Code Online (Sandbox Code Playgroud)

但是我得到了:

 java.text.ParseException: Unparseable date: "2013-12-26T01:00:56.664Z" (at offset 19)
Run Code Online (Sandbox Code Playgroud)

我做错了什么,我该如何处理日期中TZ字母?

java parsing android date simpledateformat

5
推荐指数
1
解决办法
182
查看次数

SimpleDateFormat使用AM/PM解析错误

我试图将输入字符串日期解析为Date.它无法检测输入中的AM/PM标签.它应该增加指定日期和返回日期的时间.但它无法解析AM/PM标签.03:00 PM在日期中解析为03:00:00.应该是15:00:00.

输出:日期:星期二12月22日03:00:00 UTC 2015日历:星期二12月22日星期二11:15:00结果:2015-12-22 11:15 AM

我使用错误的日期格式吗?

这是我的代码:

import java.util.*;
import java.text.*;
public class Main {
   public static void main(String[] args) throws Exception {
      System.out.println("Result : "+Main.addHoursToDate("2015-12-22 03:00 `enter code here`PM",8,15,0));
   }

   public static String addHoursToDate(String date, int hoursToAdd, int minsToAdd, int secToAdd){
        String result = "";
        try{
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm aa");
            Date dt = sdf.parse(date);

            System.out.println("Date : " + dt.toString());

            Calendar cl = Calendar.getInstance();
            cl.setTime(dt);
            cl.add(Calendar.HOUR_OF_DAY, hoursToAdd);
            cl.add(Calendar.MINUTE, minsToAdd);
            cl.add(Calendar.SECOND, secToAdd);

            SimpleDateFormat dfCal = new …
Run Code Online (Sandbox Code Playgroud)

java date simpledateformat

5
推荐指数
1
解决办法
1686
查看次数

用hh:mmaa格式解析简单的时间

DateFormat formatter = new SimpleDateFormat("hh:mmaa");
formatter.parse("01:20pm")
Run Code Online (Sandbox Code Playgroud)

我试图以01:20 pm的格式解析时间.如果我运行上面的代码,我会得到以下异常:

java.text.ParseException: Unparseable date: "01:20pm"
    at java.text.DateFormat.parse(DateFormat.java:366)
Run Code Online (Sandbox Code Playgroud)

至于我在SimpleDateFormat构造函数中放置的格式,我没有看到任何错误.这里出了什么问题?

java time parsing simpledateformat

5
推荐指数
1
解决办法
264
查看次数

SimpleDateFormat toPattern在java 9中的行为有所不同

DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.SHORT, new Locale("SV", "SE"));
((SimpleDateFormat) dateFormat).toPattern();
Run Code Online (Sandbox Code Playgroud)

在Java 8中,这一行在"yyyy-MM-dd"Java 9中生成"y-MM-dd".

这对我们的遗留代码有一些严重的问题,是否有某种方法可以恢复行为?

java date date-format simpledateformat java-9

5
推荐指数
1
解决办法
945
查看次数

标签 统计

java ×10

simpledateformat ×10

date ×7

android ×3

parsing ×3

date-format ×1

datetime ×1

java-9 ×1

regex ×1

swing ×1

swingx ×1

time ×1