在我的客户端,我有这个代码:
System.out.println("Java tz: " + TimeZone.getDefault());
System.out.println("Joda tz: " + ISOChronology.getInstance());
Run Code Online (Sandbox Code Playgroud)
这两条线一个接一个地运行.我从不设置时区或user.timezone手动,只依赖于从操作系统和本地系统读取的默认值.
执行时,它们会产生:
Java tz: sun.util.calendar.ZoneInfo[id="UTC",offset=0,dstSavings=0,useDaylight=false,transitions=0,lastRule=null]
Joda tz: ISOChronology[America/Phoenix]
Run Code Online (Sandbox Code Playgroud)
系统时区确实是凤凰城,而不是UTC.Joda怎么能正确,JDK错了?
编辑:这是一个Windows 7 x64主机,JRE是1.6.22 x64.
编辑2:不要试图重现它.它只会在某些系统上失败,而不是所有系统(就像我们的3k用户群中的几十个).我已经知道了Joda检查user.timezone然后TimeZone.getDefault().所以我正在寻找一个解释,说明我TimeZone直接打电话和Joda独自完成之间有什么不同.
在Project Euler问题中,我需要处理可能有数百个数字的数字.我需要对前9位进行一些计算.
我的问题是:确定100位整数的前N位数的最快方法是什么?模数/余数的前N位数很容易.对于第一个数字,我可以按模数应用模数100次,或者我可以将数字转换为字符串并截断,但它们都是线性时间.有没有更好的办法?
假设我有这个处理程序:
(defroutes routes
(DELETE "/books" [id] (delete-book id)))
Run Code Online (Sandbox Code Playgroud)
当请求不包含ID时,如何使该应用返回HTTP 404?
我有一个数据服务,它通过HTTP运行查询(由某个组件触发),然后通过公开结果Observable.其他组件将订阅该组件Observable并更新其结果视图.
无论如何,这是个主意,但它不起作用.这是我的代码.
ItemListDataService:
import { Injectable } from '@angular/core';
import { Http, Response } from '@angular/http';
import { Observable, Subject } from "rxjs";
import 'rxjs/add/operator/map';
@Injectable()
export class ItemListDataService {
private issues$: Subject<any>;
constructor(private http: Http) {
this.issues$ = new Subject();
this.issues$.subscribe(x => console.log('GOT IT', x));
}
getList(): Observable<any> {
return this.issues$;
}
refresh() {
this.http.get('/whatever')
.map((response: Response) => response.json())
.subscribe(data => this.issues$.next(data));
}
}
Run Code Online (Sandbox Code Playgroud)
ItemListComponent:
import { Component } from '@angular/core';
import { Observable } …Run Code Online (Sandbox Code Playgroud) 我碰巧timestamp without time zone在我的数据库中有表列.现在我需要将它们与时区进行比较.
我可以这样做:
select my_timestamp::timestamp with time zone at time zone 'EST5EDT'
from my_table
where
my_timestamp >= '2010-07-01'::timestamp at time zone 'EST5EDT'
and my_timestamp < '2010-08-01'::timestamp at time zone 'EST5EDT'
Run Code Online (Sandbox Code Playgroud)
这变得非常难看.是否有一种较短的方式,不需要我输入timestamp with time zone类型和at time zone转换?
假设我有这种多方法
(defmulti m (fn [v] [(:type v)]))
(defmethod m [Object] [k] (prn "Object"))
(defmethod m [:mykwd] [k] (prn "mykwd"))
Run Code Online (Sandbox Code Playgroud)
当我用子类调用它时Object,它会正确地调度到第一个实现:
(m {:type String})
"Object"
Run Code Online (Sandbox Code Playgroud)
随着:mykwd它也按预期工作:
(m {:type :mykwd})
"mykwd"
Run Code Online (Sandbox Code Playgroud)
但当我提供另一个关键字时,我得到一个例外:
(m {:type :anotherkwd})
#<CompilerException java.lang.IllegalArgumentException: No method in multimethod 'm'
for dispatch value: [:anotherkwd] (NO_SOURCE_FILE:0)>
Run Code Online (Sandbox Code Playgroud)
这个调度究竟是如何工作的?
是否可以为类继承保留此行为,并且仍然具有捕获所有关键字的"默认"实现?
编辑这个例子很简单,但我需要它来处理二进制函数.我的真正需求如下.我不知道如何申请:default它.
(defmulti m (fn [arg mp] [(class arg) (:type mp)]))
Run Code Online (Sandbox Code Playgroud)
然后,我正在寻找一种方式,当定义它的情况arg是nil和(:type mp)是什么.这适用于value for :type是一个类,但不适用于任何关键字:
(defmethod …Run Code Online (Sandbox Code Playgroud) 我有以下标记:
<html>
<body style="margin:0;padding:0">
<div>
<div style="border:3px solid red; width:70%; position:absolute; left:2.5%">Left</div>
<div style="border:3px solid blue; width:25%; position: absolute; left:72.5%">Right</div>
<div style="border:3px solid black; width:95%; margin: 0 auto">Bottom</div>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我想在这里实现的是三个div如下:
+---------------------------+--------+
|Left |Right |
+---------------------------+--------+
|Bottom |
+------------------------------------+
Run Code Online (Sandbox Code Playgroud)
但是,对于我的标记,"底部"div与"左"和"底"重叠.
我应该如何设计这3个元素来实现这种效果呢?
请注意,"bottom"不是页面上的最后一个元素.我只想将"左"和"右"放在一行中,并且页面流继续从以下行开始默认定位.
编辑:除了接受的答案...如果您没有静态高度或由于某种原因不想硬编码,您可以实现类似的效果:
<div style="border:3px solid red; width:70%; position:absolute; left:2.5%">Left</div>
<div style="border:3px solid blue; width:25%; margin-left:72.5%">Right</div>
<div style="border:3px solid black; width:95%; margin: 0 auto">Bottom</div>
Run Code Online (Sandbox Code Playgroud)