我有以下日期: 2011-08-12T20:17:46.384Z
.这是什么格式的?我正在尝试使用Java 1.4解析它DateFormat.getDateInstance().parse(dateStr)
并且我得到了
java.text.ParseException:Unparseable date:"2011-08-12T20:17:46.384Z"
我想我应该使用SimpleDateFormat进行解析,但我必须首先知道格式字符串.到目前为止yyyy-MM-dd
,我所拥有的只是,因为我不知道T
这个字符串中的含义是什么 - 与时区有关?此日期字符串来自文件CMIS下载历史记录媒体类型lcmis:downloadedOn
上显示的标记.
请告诉代码示例为什么SimpleDateFormat不是线程安全的.这堂课有什么问题? SimpleDateFormat的格式功能有问题吗?请给出一个在课堂上演示此错误的代码.
FastDateFormat是线程安全的.为什么?b/w SimpleDateFormat和FastDateFormat有什么区别?
请用解释此问题的代码解释一下?
我试图解析这个日期,SimpleDateFormat
它不起作用:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Formaterclass {
public static void main(String[] args) throws ParseException{
String strDate = "Thu Jun 18 20:56:02 EDT 2009";
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Date dateStr = formatter.parse(strDate);
String formattedDate = formatter.format(dateStr);
System.out.println("yyyy-MM-dd date is ==>"+formattedDate);
Date date1 = formatter.parse(formattedDate);
formatter = new SimpleDateFormat("dd-MMM-yyyy");
formattedDate = formatter.format(date1);
System.out.println("dd-MMM-yyyy date is ==>"+formattedDate);
}
}
Run Code Online (Sandbox Code Playgroud)
如果我用strDate =尝试这个代码"2008-10-14"
,我有一个肯定的答案.有什么问题?我该如何解析这种格式?
PS.我从a获得了这个日期,jDatePicker
没有关于如何修改用户选择日期时获得的日期格式的说明.
我有一个日期字符串,我想解析它到正常日期使用java Date API,以下是我的代码:
public static void main(String[] args) {
String date="2010-10-02T12:23:23Z";
String pattern="yyyy-MM-ddThh:mm:ssZ";
SimpleDateFormat sdf=new SimpleDateFormat(pattern);
try {
Date d=sdf.parse(date);
System.out.println(d.getYear());
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
但是我有一个例外: java.lang.IllegalArgumentException: Illegal pattern character 'T'
所以我想知道我是否必须拆分字符串并手动解析它?
顺便说一句,我试图在T的两边添加单引号字符:
String pattern="yyyy-MM-dd'T'hh:mm:ssZ";
Run Code Online (Sandbox Code Playgroud)
它也行不通.
我是Java新手,通常使用PHP.
我想转换这个字符串:
2011年3月14日星期四16:02:37 GMT
进入一个Calendar对象,这样我就可以像这样轻松地拉出Year和Month:
String yearAndMonth = cal.get(Calendar.YEAR)+cal.get(Calendar.MONTH);
Run Code Online (Sandbox Code Playgroud)
手动解析是不是一个坏主意?使用子字符串方法?
任何建议都会有所帮助!
我写了以下代码
Date d = new Date();
CharSequence s = DateFormat.format("MMMM d, yyyy ", d.getTime());
Run Code Online (Sandbox Code Playgroud)
但是问我参数,我想要字符串格式的当前日期,
喜欢
28-Dec-2011
Run Code Online (Sandbox Code Playgroud)
这样我就可以设置了TextView
,
解释一下,如果你认为有必要,我是Android开发的新手.
我知道这会给我这个月的一天,一个数(11
,21
,23
):
SimpleDateFormat formatDayOfMonth = new SimpleDateFormat("d");
Run Code Online (Sandbox Code Playgroud)
但是,如何格式化月份中的日期以包含序数指标,比方说11th
,21st
或者23rd
?
我有SimpleDateFormat构造函数
SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")
Run Code Online (Sandbox Code Playgroud)
我正在解析字符串 "2013-09-29T18:46:19Z".
我读过这里Z表示GMT/UTC
时区.但是当我在控制台上打印这个日期时,它会为返回的日期打印IST timezne.
现在我的问题是我的输出是对还是错?
我知道日期格式,例如
"yyyy-mm-dd"
-which以格式2011-02-26
"yyyy-MMM-dd"
显示日期 - 以格式显示日期2011-FEB-26
用于例如:
SimpleDateFormat formatter = new SimpleDateFormat(
"yyyy/MMM/dd ");
Run Code Online (Sandbox Code Playgroud)
我想要一种可以帮助我显示星期几的格式2011-02-MON
.我只想用一个月和一年的字符显示星期几.你能告诉我这样的格式吗?
以下函数生成今天的日期; 我怎么能让它只生产昨天的日期?
private String toDate() {
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = new Date();
return dateFormat.format(date).toString();
}
Run Code Online (Sandbox Code Playgroud)
这是输出:
2012-07-10
Run Code Online (Sandbox Code Playgroud)
我只需要昨天的日期,如下所示.可以在我的功能中执行此操作吗?
2012-07-09
Run Code Online (Sandbox Code Playgroud) simpledateformat ×10
date ×9
java ×9
datetime ×2
android ×1
android-date ×1
calendar ×1
date-format ×1
format ×1
iso8601 ×1
ordinal ×1
time ×1
timezone ×1