标签: simpledateformat

java日期格式化程序中的行为不一致

要么我缺少一些完全明显的东西,要么对SimpleDateFormat的行为做出无根据的假设.

我认为它应该是对称的,对吧?如果我有

SimpleDateFormatter formatter;
String datestr=...
Date d = formatter.parse(datestr);
String s=formatter.format(d);
Run Code Online (Sandbox Code Playgroud)

我应该找回原来的String.但是 -

public static final String DATE_FORMAT = "E MMM dd HH:mm:dd zz yyyy";
String test = "Mon Nov 29 09:53:24 EST 2010";
long l = new SimpleDateFormat(DATE_FORMAT).parse(test).getTime();
System.out.println(test);
System.out.println(new SimpleDateFormat(DATE_FORMAT).format(new Date(l)));
Run Code Online (Sandbox Code Playgroud)

打印出来:

美国东部时间2010年11月29日星期一09:53:24

11月24日星期三09:53:24 EST 2010

我怎么会失去5天?

java simpledateformat

0
推荐指数
1
解决办法
252
查看次数

Java DateFormat格式和解析会产生意外结果

运行以下代码时,我得到意外的输出,

DateFormat df = new SimpleDateFormat("YYYY-MM-dd");
Date date = df.parse("2012-06-23");
System.out.println(df.format(date));
Run Code Online (Sandbox Code Playgroud)

输出:2012-01-01

我期待2012-06-23作为输出,我做错了什么?

java simpledateformat

0
推荐指数
1
解决办法
270
查看次数

将字符串"30-MAR-07"转换为日期对象

SimpleDateFormat formatter = new SimpleDateFormat("mm/dd/yyyy");
dt = formatter.parse(temp[0]);
Run Code Online (Sandbox Code Playgroud)

给了我错误

java.text.ParseException:无法解析的日期:"30-MAR-07"

有没有什么办法可以将给定的String格式化为Date对象,而无需编写自己的字符串拆分和转换为月份数字方法?谢谢

java date simpledateformat

0
推荐指数
2
解决办法
5706
查看次数

java.text.ParseException:尝试将"2013-07-01T04:37:14.771468Z"转换为本地时间时的无法解析日期

我需要使用以下方法将我获得的UTC时间字符串转换为本地时间,

String dateCreate = "2013-07-01T04:37:14.771468Z"

DateFormat dfParse = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss'Z'");
dfParse.setTimeZone(TimeZone.getTimeZone("UTC"));
DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
df.setTimeZone(TimeZone.getTimeZone("Asia/Colombo"));
java.util.Date dateTime;
dateTime = dfParse.parse(dateCreate);
String dteCreate = df.format(dateTime);
Run Code Online (Sandbox Code Playgroud)

有人可以帮我解决这个问题.:)

java datetime date-format simpledateformat

0
推荐指数
1
解决办法
1956
查看次数

使用SimpleDateFormat解析日期

我试图使用SimpleDateFormat解析此字符串20130718T090000Z.我喜欢这个:

        String timeString= "20130718T090000Z";
        DateFormat dateFormat = new SimpleDateFormat("yyyyMMdd'T'HHmmssZ");
        Date date= dateFormat.parse(timeString);
Run Code Online (Sandbox Code Playgroud)

我收到了一个Unparsable错误.从这里引用http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html#rfc822timezone我发现我没有做错,或者我做错了?韩国社交协会.

java simpledateformat

0
推荐指数
1
解决办法
2349
查看次数

Java SimpleDateFormat在Date对象中返回错误的值

我正在尝试解析一个字符串以获取Date对象,但它总是返回Sun. 2012年12月30日为日期.有没有人对我做错了什么有任何想法?

我使用YYYY-MM-dd格式的字符串使用相同的代码,它工作得很好,所以我不确定为什么切换到这种格式会导致问题.

 public static Date getDateObjFromStr(String dateStr)
{
    DateFormat formatter = new SimpleDateFormat("MM/dd/YYYY");
    Date dateObj;
    try {
        dateObj = formatter.parse(dateStr);
        return dateObj;
    } catch(Exception e) {
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

表示日期的字符串

SimpleDateFormat对象返回的Date对象

java date date-format simpledateformat

0
推荐指数
1
解决办法
3090
查看次数

如何使用SimpleDateFormat解析仅包含月份和年份的日期

我正在处理卡的到期日期.我有一个API,我将以" yyMM "格式将截止日期作为" 字符串 ".我在这里尝试使用

带有TimeZone.getTimeZone的SimpleDateFormat("UTC")

所以我的代码就像

String a= "2011";
SimpleDateFormat formatter = new SimpleDateFormat("yyMM");
formatter.setTimeZone(TimeZone.getTimeZone("UTC"));
Date date = formatter.parse(a);
System.out.println(date);
Run Code Online (Sandbox Code Playgroud)

现在问题是,当我通过2011年时,它给出的是 Sat Oct 31 17:00:00 PDT 2020

在这里你可以看到我正在通过11个月,但它将它转换为10月而不是11月.

为什么

还有什么其他选项可以用来将字符串转换yyMM为Date with Timezone?

java datetime date date-parsing simpledateformat

0
推荐指数
2
解决办法
2443
查看次数

java.text.ParseException:无法解析的日期"YYYY-MM-dd'T'HH:MM:ss.SSSXXX" - 的SimpleDateFormat

我用以下代码解析datetime:

String parseDate(String tranDateTime, String originalDateFormat, String toDateFormat) throws ParseException {
    SimpleDateFormat originalMonthYear = new SimpleDateFormat(originalDateFormat);
    Date date = originalMonthYear.parse(tranDateTime);

    SimpleDateFormat formatter = new SimpleDateFormat(toDateFormat);
    return formatter.format(date);
}
Run Code Online (Sandbox Code Playgroud)

并尝试解析日期时间值,如下所示:

parseDate("2017-08-16T00:00:00Z", 
          "yyyy-MM-dd'T'HH:mm:ss.SSSXXX", "yyyy-MM-dd HH:mm:ss");
Run Code Online (Sandbox Code Playgroud)

抛出异常:

java.text.ParseException:无法解析的日期:"2017-08-16T00:00:00Z"

但是,当我更改日期值时"2017-08-16T02:54:15.537Z",功能正常.我不知道为什么.

java date simpledateformat datetime-parsing

0
推荐指数
1
解决办法
2062
查看次数

将现在6个月前的日期转换为字符串

我已经采取了SOF和其他网站上给出的所有答案,并尝试这样做:

String fromDateTime = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.sssX").format(new DateTime().plusMonths(-6));
Run Code Online (Sandbox Code Playgroud)

但是我被给了例外:

线程"main"中的异常java.lang.IllegalArgumentException:无法将给定的Object格式化为Date

我究竟做错了什么?

java format date jodatime simpledateformat

0
推荐指数
1
解决办法
79
查看次数

Java SimpleDateFormat not detecting month

I'm using SimpleDateFormat in Java and for some reason it is not detecting the month. Here is my code:

     /**
     * Takes a date/time stamp which looks like yyyyMMDDhhmmss on converts it to
     * yyyy-MM-DDThh:mm:ssZ
     *
     * @param timestamp
     * @return
     */
    public static String ConvertDate(String timestamp) {
        if (timestamp == null || timestamp.length() < 14)
            return null;

        String timeString = null;

        System.out.println(timestamp);
        DateFormat outputFormat = new SimpleDateFormat("YYYY-MM-DD'T'hh:mm:ss'Z'");
        DateFormat inputFormat = new SimpleDateFormat("yyyyMMDDhhmmss");

        try{
            Date date = inputFormat.parse(timestamp);
            timeString = …
Run Code Online (Sandbox Code Playgroud)

java date-format simpledateformat

0
推荐指数
1
解决办法
66
查看次数