質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

Q&A

1回答

5511閲覧

UnityC# Android 現在時刻がおかしい

MasujimaRyohei

総合スコア422

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

0グッド

0クリップ

投稿2017/10/07 06:38

#発生した問題

以下のスクリプトが含まれたアプリをAndroidに書き出し後、実行してみたら

C#

1void Update() 2{ 3 txtTime.text = System.DateTime.Now.Hour.ToString() + ":" + System.DateTime.Now.Minute.ToString(); 4}

6:27
と時の部分がおかしく表示されました(15時27分現在)

エディタ上での実行ではきちんと15:27と正しく表示されています。

Android本体のシステム時間も特に以上はありません。

なにか考えられる原因があれば教えてください。

#開発環境
Window10
Unity2017.1
Android 6.0

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

※直接の答えとなる回答ではありません。
タイムゾーンとして日本時間(JST/+09:00)をお使いであることを前提とします。

15時27分からマイナス9時間なので、UTCでの表記になっていると思われますが、System.DateTime.Nowプロパティを使われているので、ローカル時間であるJST/+09:00で正しく表示されて良いはず。

さらに、Android本体のシステム時間には異常が無いとのことですが、Android本体のタイムゾーンもJST/+09:00で使われているのですよね。例えばタイムゾーンがGMTだとSystem.DateTime.Nowプロパティでも 06:27 で表示されてしまいます。

タイムゾーンに問題が無いとすると、考えられるのはAndroid上で動いているUnityの.NET Framework環境の問題な気がしていますが、基本的な部分であるだけにそんな問題が潜んでいるとも考えづらいです。

以下のようなコードを入れてローカル時間とUTCの差、加えてタイムゾーン情報を確認してみてはいかがでしょうか。

C#

1Debug.WriteLine("ローカル: " + DateTime.Now); 2Debug.WriteLine("UTC: " + DateTime.UtcNow); 3 4// タイムゾーン情報を出力 5System.TimeZoneInfo tzi = System.TimeZoneInfo.Local; 6Debug.WriteLine("標準表示名: " + tzi.DisplayName); 7Debug.WriteLine("UTCオフセット: " + tzi.BaseUtcOffset);

Android+Unityで試したものではありませんが、以下のような出力がされるはずです。

ローカル: 2017/10/07 17:55:13
UTC: 2017/10/07 8:55:13
標準表示名: (UTC+09:00) 大阪、札幌、東京
UTCオフセット: 09:00:00

これらの情報があると、更に詳しい回答をいただけるかもしれません。

投稿2017/10/07 09:04

dodox86

総合スコア9183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問