DateTime - JDK Calendar
DateMidnight的不可变替换 - 表示时间强制为午夜的不可变类
LocalDateTime - 表示本地日期和时间的不可变类(无时区)
我想知道你是如何在分层应用程序中使用这些类的.
我看到几乎所有接口都使用LocalDateTime(至少在服务层)的优势,这样我的应用程序就不必管理时区,并且可以安全地假设时间始终为UTC.然后,我的应用程序可以在执行流程的最开始使用DateTime来管理时区.
我也想知道DateMidnight在哪种情况下有用.
我将日期存储在SQLite数据库中,格式如下:
d-MMM-yyyy,HH:mm:ss aaa
Run Code Online (Sandbox Code Playgroud)
当我用这种格式检索日期时,除了小时之外,我得到的每件事都很好.小时总是00.这是我的输出:
String date--->29-Apr-2010,13:00:14 PM
After convrting Date--->1272479414000--Thu Apr 29 00:00:14 GMT+05:30 2010
Run Code Online (Sandbox Code Playgroud)
这是代码:
Date lScheduledDate = CalendarObj.getTime();
DateFormat formatter = new SimpleDateFormat("d-MMM-yyyy,HH:mm:ss aaa");
SomeClassObj.setTime(formatter.format(lScheduledDate));
String lNextDate = SomeClassObj.getTime();
DateFormat lFormatter = new SimpleDateFormat("d-MMM-yyyy,HH:mm:ss aaa");
Date lNextDate = (Date)lFormatter.parse(lNextDate);
System.out.println("output here"+lNextDate);
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我写了一些代码来检查两个日期,开始日期和结束日期.如果结束日期在开始日期之前,则会提示结束日期在开始日期之前.
我还想添加一个检查,如果开始日期是在今天之前(今天是在用户使用该应用程序的那天)我该怎么做?(下面的日期检查程序代码,如果有任何影响,所有这些都是为Android编写的)
if (startYear > endYear) {
fill = fill + 1;
message = message + "End Date is Before Start Date" + "\n";
} else if (startMonth > endMonth && startYear >= endYear) {
fill = fill + 1;
message = message + "End Date is Before Start Date" + "\n";
} else if (startDay > endDay && startMonth >= endMonth && startYear >= endYear) {
fill = fill + 1;
message = message + "End Date is Before …Run Code Online (Sandbox Code Playgroud) 我在这里看到了所有的帖子,但我仍然无法想象如何在两个android日期之间找到差异.
这就是我做的:
long diff = date1.getTime() - date2.getTime();
Date diffDate = new Date(diff);
Run Code Online (Sandbox Code Playgroud)
我明白了:日期是1970年1月1日,时间总是在两个小时内变大......我来自以色列所以两个小时就是时间.
我怎样才能得到正常的差异?
刚刚在我的Windows(8)工作站和AIX上测试了这段代码:
public static void main(String[] args) {
System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSSSS").format(new Date()));
System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSSSS").format(new Date()));
}
Run Code Online (Sandbox Code Playgroud)
并得到类似的结果:
2013-10-07 12:53:26.000905
2013-10-07 12:53:26.000906
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下,如果不是微秒,最后的数字是什么?
注意:我与DB2数据库交互,其中使用定时列作为TIMESTAMP存储按时间顺序排列的数据,其中6位数字在秒之后,即微秒(IMO).但是所有这些"时间戳"都是通过请求以下查询来创建的:
SELECT current timestamp as currenttimestamp FROM Table ( values (1)) temp
Run Code Online (Sandbox Code Playgroud)
我想知道,鉴于上述结果,我不能只使用我的代码new Date()而不是current timestamp从数据库中选择.
谢谢.
PS:我搜索但发现没有相关(已回答)的问题,例如: java中的当前时间(以微秒为单位) 或 以小时,分钟,秒,毫秒,微秒获取时间
我写过这个函数:
public static XMLGregorianCalendar getXMLGregorianCalendar(String date) throws OmniException{
XMLGregorianCalendar xmlCalender=null;
GregorianCalendar calender = new GregorianCalendar();
calender.setTime(Util.stringToJavaDate(date));
xmlCalender = DatatypeFactory.newInstance().newXMLGregorianCalendar(calender);
return xmlCalender;
}
public static Date stringToJavaDate(String sDate) throws OmniException{
Date date=null;
date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH).parse(sDate);
return date;
}
Run Code Online (Sandbox Code Playgroud)
当我将"2014-01-07"输出日期作为2014-01-06T18:30:00:000Z
我出错的地方时,我正在通过日期?如果我想得到什么怎么办,2014-01-06T18:30:00并且2014-01-06T18:30:00Z
感谢任何帮助
我在项目中有以下要求.
我有一个名称输入字段startDate,用户输入格式YYYY-MM-DD HH:MM:SS.我需要在startDate字段中为用户输入添加两个小时.我该怎么做.
提前致谢
在我的数据库中,我的开始日期如2011-11-30(yyyy/mm/dd)格式.持续时间如40天.如何计算天数并获得mm/dd/yyyy的新日期格式.
谁能帮我
谢谢
我正在创建一个我想在午夜每晚更新的Android小部件.我正在使用一个AlarmManager,我需要知道从当前时间到午夜剩下多少毫秒.这是我的代码:
AlarmManager mAlarmManager = (AlarmManager)context.getSystemService(android.content.Context.ALARM_SERVICE);
mAlarmManager.set(AlarmManager.ELAPSED_REALTIME, millisecondsUntilMidnight, mSrvcPendingingIntent);
Run Code Online (Sandbox Code Playgroud)
如何计算到午夜剩下多少毫秒?
先感谢您.
我试过了
int year = Calendar.get(Calendar.YEAR);
Run Code Online (Sandbox Code Playgroud)
但它给了我编译时错误
无法从静态上下文引用非静态方法'get(int)'.
我从observable的调用方法调用此方法.
Observable.combineLatest(ob1 ob2,
ob3, new Func3<String, String, String, Boolean>() {
@Override
public Boolean call(String a, String b, String c) {...
Run Code Online (Sandbox Code Playgroud)
我也见过(new Date()).getYear();但它被弃用了.