标签: 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
查看次数

转换GMT DateTime字符串

我是Java的新手,我对使用SimpleDateFormat和使用时有点困惑Calendar.我有一个Date-Object,想要提取GMT日期字符串yyyy-MM-dd HH:mm:ss.我住在德国,目前我们是GMT +0200.我的Date-Object的时间就是例如2011-07-18 13:00:00.我现在需要的是2011-07-18 11:00:00.我的时区的偏移量应自动计算.

我试过这样的事情,但我想某处有一个错误:

private String toGmtString(Date date){
    SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    TimeZone timeZone = TimeZone.getDefault();
    Calendar cal = Calendar.getInstance(new SimpleTimeZone(timeZone.getOffset(date.getTime()), "GMT"));
    sd.setCalendar(cal);
    return sd.format(date);
}
Run Code Online (Sandbox Code Playgroud)

在某些设备上,datetring会像我想要的那样返回.在其他设备上,偏移量未正确计算,我从输入日期 - 对象接收日期和时间.你能给我一些提示或建议吗?我想我的方式获得默认时区不起作用?

java android date gmt simpledateformat

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

SimpleDateFormat ParseException:无法解析的日期错误

我正在从XML解析这个日期格式:=>" 2011-12-06T07:41:14.016 + 00:00 ",我收到此错误:

  • W/System.err(574):java.text.ParseException:Unparseable date:"2011-12-06T07:41:14.016 + 00:00"

我确定这是我正在使用的格式化声明,但我无法弄清楚它应该是什么......

这是我正在使用的声明:

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

我得到了如何创建这个部分的格式:" 2011-12-06T07:41:14 ....",这是另一部分:=>".016 + 00:00 "这就是我的循环.

我已经在这里寻找答案:Android SimpleDateFormat页面,这里是Oracle SimpleDateFormat页面,但我担心我遗漏了一些基本的东西......

您是否对该特定日期格式的正确格式声明或相关资源有任何建议?

非常感谢提前!

java android simpledateformat

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

如何在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
查看次数

解析日期字符串的问题

我正在尝试将以下字符串解析为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 ×8

android ×5

parsing ×3

date-format ×1

datetime ×1

gmt ×1

java-9 ×1

time ×1