在Java中,如何以秒和纳秒的形式打印出自上述时间以来的时间,格式如下:
java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
Run Code Online (Sandbox Code Playgroud)
我的意见是:
long mnSeconds;
long mnNanoseconds;
Run Code Online (Sandbox Code Playgroud)
其中两者的总和是自纪元以来经过的时间1970-01-01 00:00:00.0.
我正在开发一个项目,从后端IST(印度标准时间)获取日期/时间,如图所示"2013-01-09T19:32:49.103+05:30".但是当我使用以下DateFormat解析它时
DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
Run Code Online (Sandbox Code Playgroud)
然后解析..
Date date = sdf.parse("2013-01-09T19:32:49.103+05:30");
System.out.println("XYZ ==============>"+date);
Run Code Online (Sandbox Code Playgroud)
以GMT格式显示日期作为输出即
Wed Jan 09 14:02:49 GMT+00:00 2013.
Run Code Online (Sandbox Code Playgroud)
我已经尝试使用TimeZone类作为..
TimeZone timeZone=TimeZone.getTimeZone("IST");
sdf.setTimeZone(timeZone);
Run Code Online (Sandbox Code Playgroud)
但没有效果..
我怎么能得到一个Date具有日期IST格式而不是GMT 的类对象...
请提供适当的解决方案..
编辑:
这是代码的样子:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
TimeZone timeZone=TimeZone.getTimeZone("IST");
sdf.setTimeZone(timeZone);
Date date = sdf.parse("2013-01-09T19:32:49.103+05:30");
String formattedDate=sdf.format(date);
System.out.println("XYZ ==============>"+formattedDate);
Run Code Online (Sandbox Code Playgroud) 我遇到了日期解析示例日期的问题:
SimpleDateFormat parserSDF=new SimpleDateFormat("EEE MMM dd HH:mm:ss zzzz yyyy", Locale.getDefault());
parserSDF.parse("Wed Oct 16 00:00:00 CEST 2013");
Run Code Online (Sandbox Code Playgroud)
得到例外
我希望将此格式日期解析为yyyy-MM-dd我尝试:
SimpleDateFormat parserSDF = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
Date date = parserSDF.parse("Wed Oct 16 00:00:00 CEST 2013");
Run Code Online (Sandbox Code Playgroud)
take:java.text.ParseException:Unparseable date:"Wed Oct 16 00:00:00 CEST 2013"
好的,我改变并工作:
SimpleDateFormat parserSDF = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzzz yyyy", Locale.ENGLISH);
Date date = parserSDF.parse("Wed Oct 16 00:00:00 CEST 2013");
Run Code Online (Sandbox Code Playgroud) 我有这个代码块,其中参数dateFormat.format将永远是string我在.toString()这里做的原因.我收到错误"无法将给定对象格式化为日期".
有没有办法做到这一点?请注意,字符串来自数据库我在这里使用了新的Date()作为示例.
SimpleDateFormat dateFormat = new SimpleDateFormat("MMMMM dd, yyyy");
String sCertDate = dateFormat.format(new Date().toString());
Run Code Online (Sandbox Code Playgroud) 我SimpleDateFormat format = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss");在Windows中使用这种模式并且它可以工作,但是当尝试使用Ubuntu 10.04时它会显示异常play.exceptions.JavaExecutionException: Illegal pattern character 'Y'.
我为此寻找解决方案,发现年份模式必须改为小写:
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");并且它有效.
任何人都可以告诉我为什么在Windows工作的原因,但在Ubuntu如果我使用'Y'而不是'y'不起作用?
注意:
java version "1.7.0_03"
Java(TM) SE Runtime Environment (build 1.7.0_03-b05)
Java HotSpot(TM) Client VM (build 22.1-b02, mixed mode, sharing)java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
Java HotSpot(TM) 64-Bit Server VM (build 20.6-b01, mixed mode)更新24/05/2012
在我的系统中再次检查后,有3个JRE和我的窗口使用JRE1.7默认.但对于Play我使用JRE1.6设置运行.
java windows-7 simpledateformat ubuntu-10.04 playframework-1.x
我需要将日期格式化为特定的字符串.
我使用SimpleDateFormat类来格式化日期,使用模式" yyyy-MM-dd'T'HH:mm:ssZ"它将当前日期返回为
" 2013-01-04T15:51:45+0530",但我需要为
" 2013-01-04T15:51:45+05:30".
以下是使用的编码,
Calendar c = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ", Locale.ENGLISH);
Log.e(C.TAG, "formatted string: "+sdf.format(c.getTime()));
Run Code Online (Sandbox Code Playgroud)
输出:格式化字符串:2013-01-04T15:51:45+0530
我需要格式2013-01-04T15:51:45+05:30只是在gmt时间之间添加冒号.
因为我正在使用Google日历来插入活动,所以它只接受我提到的所需格式.
我们最近开始在生产环境上遇到一个奇怪的错误(测试环境工作正常).
java.lang.IllegalArgumentException:非法模式字符'y'
这是由以下代码引起的
SimpleDateFormat dateFormat = (SimpleDateFormat)DateFormat.getDateInstance();
dateFormat.applyLocalizedPattern("yyyy-MM-dd");
Run Code Online (Sandbox Code Playgroud)
例如,当使用'Y'而不是'y'表示年份时,通常会抛出此错误.如上所示,这不是这种情况.我不是100%确定服务器上设置的语言环境.Linux env LANG设置为"de_DE.UTF_8",因此可能会使用它.
输入SimpleDateFormat.java的源代码我找到了方法translatePattern(String pattern, String from, String to).这会抛出当patternfrom中不存在任何字符时提到的异常.在其他计算机上本地调试时,值看起来像这样
pattern ="yyyy-MM-dd"
from ="GyMdkHmsSEDFwWahKzZ"
从服务器上的例外来看,很明显第一个'y'不存在from.from从中获取formatData.getLocalPatternChars(),这是DateFormatSymbols从服务器上的语言环境初始化的.
是否有可用的格式没有'y'?这个错误已经开始发生而没有任何代码更改,据我所知,没有更改服务器配置.
如何将2013-06-24转换为2013年6月24日?我使用以下代码.
date1="2013-06-24";
SimpleDateFormat d= new SimpleDateFormat("dd MMM yyyy");
try{
date2 = d.parse(date1);
}catch (ParseException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
但我收到此错误"java.text.ParseException:Unparseable date:"2013-06-24"(在偏移4处)"
您好我想将当前日期转换为此格式YYYY-MM-DD.但是,它会将日期转换为String格式,但我想将其转换回Date格式.所以有人可以就此提出建议吗?
到目前为止这是我的代码
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date();
String datestring = dateFormat.format(date);
Run Code Online (Sandbox Code Playgroud) 我是java的新手,我正在尝试使用24小时格式来格式化时间.我有两种格式化小时的方法--HH和kk:
SimpleDateFormat format1 new SimpleDateFormat("HH:mm");
SimpleDateFormat format2 new SimpleDateFormat("kk:mm");
Date date = new Date();
System.out.println(format1.format(date));
System.out.println(format2.format(date));
Run Code Online (Sandbox Code Playgroud)
这些都产生类似11:21的东西.他们之间有什么区别?我错过了什么吗?
simpledateformat ×10
java ×9
android ×3
date ×3
calendar ×1
date-format ×1
datetime ×1
epoch ×1
locale ×1
q ×1
string ×1
time ×1
timezone ×1
ubuntu-10.04 ×1
windows-7 ×1