VB.net输出带有时区和偏移量的日期时间

时间:2017-08-23 09:33:57

标签: vb.net date-formatting

我希望在Visual Basics中构建一个DateTime,如下所示:

Wed Aug 23 2017 10:00:00 GMT+0530

有人可以建议如何构建DateTime信息,其中时区信息也可以如上所示显示?

2 个答案:

答案 0 :(得分:0)

您可以执行以下操作...

Dim dt as DateTime = DateTime.UtcNow
Dim output as String = dt.ToLocalTime().ToString("MMM dd, yyyy HH:mm:ss tt ""GMT"" zzz")
Console.WriteLine(output) 'Outputs Aug 23, 2017 11:16:29 AM GMT +01:00

有关详细信息,请参阅Custom Date and Time Format Strings

答案 1 :(得分:0)

DateTime有一个Kind,它是DateTimeKind.Local,DateTimeKind.Utc或DateTimeKind.Unspecified之一,所以尽管它有一些时区信息,但它太受限了指定另一个偏移量。

DateTimeOffset可以容纳其他偏移量,因此它可能更适合您的目的:

yourView.setOnTouchListener(new OnSwipeTouchListener() {
public void onSwipeTop() {
    Toast.makeText(MyActivity.this, "top", Toast.LENGTH_SHORT).show();
}
public void onSwipeRight() {
    Toast.makeText(MyActivity.this, "right", Toast.LENGTH_SHORT).show();
}
public void onSwipeLeft() {
    Toast.makeText(MyActivity.this, "left", Toast.LENGTH_SHORT).show();
}
public void onSwipeBottom() {
    Toast.makeText(MyActivity.this, "bottom", Toast.LENGTH_SHORT).show();
}

public boolean onTouch(View v, MotionEvent event) {
    return gestureDetector.onTouchEvent(event);
}
});

输出:

  

2017-08-23 11:36:55 +01:00
  2017-08-23 10:36:55 Z
  2017-08-23 10:36:55 GMT +05:30

我必须将DateTime变量Module Module1 Sub Main() Dim hereAndNow = DateTime.Now Dim utc = DateTime.UtcNow Dim noTzi = Date.SpecifyKind(utc, DateTimeKind.Unspecified) Dim inIndia As New DateTimeOffset(noTzi, TimeSpan.FromHours(5.5)) Console.WriteLine(hereAndNow.ToString("yyyy-MM-dd HH:mm:ss K")) Console.WriteLine(utc.ToString("yyyy-MM-dd HH:mm:ss K")) Console.WriteLine(inIndia.ToString("yyyy-MM-dd HH:mm:ss 'GMT' K")) Console.ReadLine() End Sub End Module 的种类设置为utc才能在DateTimeOffset构造函数中使用它。

您应该使用K custom format specifier 显示时区信息。