我有一个标准ISO 8601格式的字符串,其中包含从Web服务返回的日期/时间,如下所示:
String dtStart = "2010-10-15T09:27:37Z"
Run Code Online (Sandbox Code Playgroud)
如何将其转换为时间或日期等对象?我最初想要以不同的格式输出它,但是稍后需要用它做其他的东西(也就是说可能以不同的格式使用).
干杯
我想检索它是哪个月的哪一天.
比如今天是2011年8月29日.
我想做的就是得到29天或30天的天数.这个月的哪一天.
我该怎么做呢?
我想要以毫秒为单位的当前时间然后以12小时格式存储它,但是使用这段代码我得到24小时格式时间.
long timeInMillis = System.currentTimeMillis();
Calendar cal1 = Calendar.getInstance();
cal1.setTimeInMillis(timeInMillis);
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/mm/yyyy HH:mm:ss a");
dateforrow = dateFormat.format(cal1.getTime());
Run Code Online (Sandbox Code Playgroud)
任何人都可以提出修改以获得理想的结果?
我正在timezone使用此代码获取Android设备
TimeZone tz = TimeZone.getDefault();
String current_Time_Zone = (TimeZone.getTimeZone(tz.getID()).getDisplayName(
false, TimeZone.SHORT))
Run Code Online (Sandbox Code Playgroud)
但它总是让我timezone像" IST",但我想得到GMT像这样的时区GMT+7:00.
使用java8我们知道使用ZoneId.default()可以获得系统默认值ZoneId,但如何获取默认值ZoneOffset?
我看到一个ZoneId有一些"规则",每个规则都有一个ZoneOffset,这意味着一个ZoneId可能有一个以上ZoneOffset吗?
我试图进入和离开ToDate之前的日期,FromDate并将有当月的第一个日期.对于一月它会是1/1/2013等等.如何正确获取当月的第一个日期?我无法做到.
today.add(Calendar.DAY_OF_MONTH, -1);
java.util.Date previousDay=today.getTime();
ToDate = sdfFile1.format(newjava.sql.Date(previousDay.getTime()));
today.add(Calendar.DATE, 1);
java.util.Date nextDay=today.getTime();
FromDate = sdfFile1.format(new java.sql.Date(nextDay.getTime()));
Run Code Online (Sandbox Code Playgroud) 为了使我们的代码更加标准化,我们被要求将我们将SQL变量硬编码的所有位置更改为预处理语句并改为绑定变量.
然而,我面临着一个问题setDate().
这是代码:
DateFormat dateFormatYMD = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
DateFormat dateFormatMDY = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
Date now = new Date();
String vDateYMD = dateFormatYMD.format(now);
String vDateMDY = dateFormatMDY.format(now);
String vDateMDYSQL = vDateMDY ;
java.sql.Date date = new java.sql.Date(0000-00-00);
requestSQL = "INSERT INTO CREDIT_REQ_TITLE_ORDER (REQUEST_ID," +
" ORDER_DT, FOLLOWUP_DT) " + "values(?,?,?,)";
prs = conn.prepareStatement(requestSQL);
prs.setInt(1,new Integer(requestID));
prs.setDate(2,date.valueOf(vDateMDYSQL));
prs.setDate(3,date.valueOf(sqlFollowupDT));
Run Code Online (Sandbox Code Playgroud)
SQL执行时出现此错误:
java.lang.IllegalArgumentException
at java.sql.Date.valueOf(Date.java:138)
at com.cmsi.eValuate.TAF.TAFModuleMain.CallTAF(TAFModuleMain.java:1211)
Run Code Online (Sandbox Code Playgroud)
我应该使用setString(),而不是用to_date()?
即这段代码
startDate = new Date(timestampValue.getTime));
Run Code Online (Sandbox Code Playgroud)
给我 :
2012-16-02 05:16:17
什么时候
System.out.println(timestampValue);
Run Code Online (Sandbox Code Playgroud)
回报:
2012-01-02 05:16:17.0
我正在尝试将yyyy-MM-dd'T'HH:mm:ss.SSSz格式的日期格式化为yyyy-mm-dd HH:mm:ss,这应该很容易,但我不能让它工作.
必须解析的日期格式为:2012-10-01T09:45:00.000 + 02:00
现在我使用这个简单的日期格式化程序来格式化它:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSz", Locale.FRANCE);
Run Code Online (Sandbox Code Playgroud)
但是这给出了类似于2012-10-01T09的输出:45:00.000UTC + 00:00.
我也尝试使用"yyyy-MM-dd'T'HH:mm:ss.SSSZ"作为模式和"yyyy-MM-ddHH:mm:ss".后者以2012-10-01T09:45:00的形式返回日期,但尚未结束.
我认为将T分离出来会有点乱,并且无缘无故地创造开销,那么格式化这些日期的正确方法是什么?
为了说明我想将2012-10-01T09:45:00.000 + 02:00转换成2012-10-01 09:45:00
干杯!