在Java中,我想获得GMT的当前时间.
我试过这样的各种选项:
Date date = new Date();
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
date1 = calendar.getTime();
Run Code Online (Sandbox Code Playgroud)
但是日期总是在我当地的时区解释.
我做错了什么以及如何将java Date转换为GMT?
我目前使用以下代码打印双:
return String.format("%.2f", someDouble);
Run Code Online (Sandbox Code Playgroud)
这很有效,除了Java使用我的Locale的小数分隔符(逗号),而我想使用一个点.是否有捷径可寻?
当我执行左外连接时,我希望获得查询在添加连接表之前返回的所有记录,但它只返回与连接表匹配的记录(即:表中不存在'092387'的记录'文档',所以我只想为该记录的'filename'字段返回null.)我做错了什么?
mysql> select documentation_reference.ref_docnumber
, documentation.filename
from documentation_reference
left outer join documentation on ref_docnumber=documentation.docnumber
where documentation_reference.docnumber='TP-036'
and documentation.status!=3;
+---------------+-----------------+
| ref_docnumber | filename |
+---------------+-----------------+
| SOP-0042 | SOP-0042r39.pdf |
+---------------+-----------------+
1 row in set (0.00 sec)
mysql> select ref_docnumber
from documentation_reference
where documentation_reference.docnumber='TP-036';
+----------------------+
| ref_docnumber |
+----------------------+
| 092387 |
| 1100218B |
| Applicable Item Spec |
| SOP-0042 |
+----------------------+
4 rows in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud) 这个问题提出了一般性问题.我特别询问VHDL,因为提出问题答案的工具是针对Java和PL/SQL的.它不需要是完美的,一些手动解释会很好.我这样做是为了自动提交任务.
编辑3/9/11:@phillipe指出自动提交任务与手动解释不一致.我正在努力鼓励其他工程师摆脱代码并看到他们做到了.我猜一个悲观的工具对于提交会更好; 如果它错过了一些不是世界末日的代码.或者我可以报告这些行的数量并通过电子邮件发送给我,而不是停止提交.
根据C++规范(23.2.4.3),vector :: erase()只会使"擦除点之后的所有迭代器和引用"无效"
这样,在采用reverse_iterators时越过所有向量成员,在当前迭代器的擦除应该不引起撕裂()成员将被无效.
此代码将在G ++下运行,但会在Windows上提供运行时异常(VS2010):
#include <vector>
using namespace std;
int main()
{
vector<int> x;
x.push_back(1);
x.push_back(2);
x.push_back(3);
//Print
for(vector<int>::const_iterator i = x.begin(); i != x.end(); ++i)
printf("%d\n", *i);
//Delete second node
for(vector<int>::reverse_iterator r = x.rbegin(); r != x.rend(); ++r)
if(*r == 2)
x.erase((r+1).base());
//Print
for(vector<int>::const_iterator i = x.begin(); i != x.end(); ++i)
printf("%d\n", *i);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
错误很有趣:
表达式:向量迭代器不可递减
在第二次运行时给出第二个for循环的行.递减引用reverse_iterator的内部"当前"迭代器成员,每当reverse_iterator递增时递减.
有人能解释一下这种行为吗?
谢谢.
编辑
我认为这个代码示例更好地表明它不是r的问题,而是rend():
//Delete second node
for(vector<int>::reverse_iterator r = x.rbegin(); r != x.rend();)
{
vector<int>::reverse_iterator …Run Code Online (Sandbox Code Playgroud) 我知道,我有其他选择,例如我可以维护一个单独的键列表.请不要提出其他选择.我只是想知道我是否可以解决这个问题.请不要问我我要解决的问题是什么,或类似的问题.这是一个纯粹而简单的CS问题.
我想知道是否有人知道从a获取密钥的方法Hashtable并将它们转换为某种List<int>或其他类型IEnumerable<int>(当然,我的密钥实际上是整数).
鉴于我可以毫无问题地做到这一点:
foreach (int key in hashtable.Keys)
Run Code Online (Sandbox Code Playgroud)
为什么这会给我错误?
(List<int>)hashtable.Keys
Run Code Online (Sandbox Code Playgroud) 我有一个VS2008 C#.NET 3.5应用程序,我想在给定这些对象的IEnumerable列表的情况下创建对象的哈希表.
基本上,它看起来像这样:
public class MyCollection<T> : IEnumerable<T>
where T: IMyData, new()
{
private IDictionary<int, string> collection_ = new Dictionary<int, string>();
// ...
public void Add(T item)
{
collection_.Add(item.ID, item.Text);
}
public static MyCollection<T> Create(IEnumerable<T> source)
{
MyCollection<T> c = new MyCollection<T>();
foreach(T item in source)
{
c.Add(item);
}
return c;
}
}
Run Code Online (Sandbox Code Playgroud)
这有效,但我想知道是否没有更好的方法从一个IEnumerable源复制到另一个.有什么建议?
谢谢,PaulH
我在这里遇到了一个真正的困境,我很确定我要做的事情相对简单.基本上我有一个数据库(跟随迁移),列出了一堆学生和他们的信息.有四个列,seek_position,min_hourly,max_hourly和start_weeks,我需要能够在网站的前端进行过滤.现在,我可以弄清楚该怎么做是显示一个页面,其上列出了所有用户.我不打算在这里找一份讲义,我已经完成了我所知道的所有事情,甚至尝试了一些我并不理解的东西,试着让它发挥作用.似乎绊倒我的是找到一种同时过滤多种东西的方法.例如,向所有学生展示seek_position为"internship",min_hourly为"7",max_hourly为"10",start_weeks为"2 to 4".有任何想法吗?我在没有脚手架的情况下使用ActiveRecord在Rails 3.0.3上.谢谢 :)
我的迁移:
class CreateStudents < ActiveRecord::Migration
def self.up
create_table :students do |t|
t.string :name
t.string :email
t.integer :phone
t.text :bio
t.text :resume
t.string :seeking_position
t.integer :min_hourly
t.integer :max_hourly
t.integer :start_weeks
t.string :pic_uid
t.timestamps
end
end
def self.down
drop_table :students
end
end
Run Code Online (Sandbox Code Playgroud) 假设应用程序已经有一堆活动,然后使用FLAG_ACTIVITY_NEW_TASK从应用程序上下文启动一个新活动.这发生在同一个进程中,即在应用程序内部,如下所示:
AppContext -> A(FLAG_ACTIVITY_NEW_TASK) -> B -> C; AppContext -> D(FLAG_ACTIVITY_NEW_TASK)
Run Code Online (Sandbox Code Playgroud)
根据文档,我们现在有2个任务:
Task 1: A, B, C; Task 2: D
Run Code Online (Sandbox Code Playgroud)
从文档中可以看出,用户理论上可以独立地切换到活动C或活动D,因为它们属于不同的任务.然而,在实践中,我无法切换到活动C - 它总是切换到D.
我的问题是: 如果在与FLAG_ACTIVITY_NEW_TASK相同的过程中启动,任务是不是独立的,用户只能切换到最顶层任务中的最顶层活动?
如果答案是"否",那么用户切换到任务1的方式是什么?
答案是:否
任务是独立的,用户可以独立切换他们的活动,有效地将您的应用程序的两个活动放在堆栈顶部.在询问原始问题三年后,我刚刚找到了用例.
我们的应用程序将自己注册为URL方案的处理程序(如market://xxx.yyy/zzz).现在让我们想象一下,用户使用启动器启动了应用程序,进入某事物(活动A, B, C)的中间,然后离开了.然后在浏览器中,用户单击URL以启动我们的其他活动(活动D).这导致在同一时间有两个任务:活动A, B, C(C在顶部)和活动D.用户可以通过任务历史在这两个活动之间切换.
有趣的是,使用应用程序自己的图标在任务历史记录中可以看到活动C,但是使用浏览器的图标可以看到活动D. 无论如何,两者都可以切换到.
此外,这两个任务A-B-C,并D在同一个进程中运行.这意味着所有单重对象和静态数据都在它们之间共享.因此,如果不采取谨慎措施,他们可能会破坏彼此的状态.
出于某种原因,在更换场景时不会触发我的CCLayer的dealloc.这是替换场景的代码:
[[CCDirector sharedDirector] replaceScene:[CCFadeTransition transitionWithDuration:2.0f scene:[HelloWorld scene]]];
Run Code Online (Sandbox Code Playgroud)
按下按钮时会触发上面的代码.
我已经在dealloc方法中放置了一个永远不会触发的NSLog.
更新1:
我最后通过在更换场景之前手动释放内存来解决问题.
c# ×2
java ×2
activerecord ×1
android ×1
c++ ×1
collections ×1
comments ×1
date ×1
dictionary ×1
double ×1
erase ×1
filtering ×1
formatting ×1
gmt ×1
hashtable ×1
ienumerable ×1
join ×1
key ×1
mysql ×1
outer-join ×1
scope ×1
search ×1
stack ×1
task ×1
vector ×1
vhdl ×1
visual-c++ ×1